WotSF (still)

Donavin69

Member
I've finally started to try to do some ascension scripting (inspired by Bumcheeks, Slyz, Zarqon, Bale, and the others that are way more experienced than I am)

I am trying to script for a WotSF run, but I am trying to figure out how to tell where I learned skills, is there a good way?

Donavin
 
The info is stored in these preferences:
Code:
fistTeachingsBarroomBrawl
fistTeachingsBatHole
fistTeachingsConservatory
fistTeachingsFratHouse
fistTeachingsFunHouse
fistTeachingsHaikuDungeon
fistTeachingsMenagerie
fistTeachingsNinjaSnowmen
fistTeachingsPokerRoom
fistTeachingsRoad
fistTeachingsSlums
 
before you posted that, I wrote this quick and dirty (based on the alias I think Bale posted)

I think using the Prefs will probably be better...

Code:
boolean FistLearned(location here) {
	int fistSkillsKnown = get_property("fistSkillsKnown").to_int();
	location [string] places;
	places ["FratHouse"] = $location[frat house];
	places ["Menagerie"] = $location[menagerie 2];
	places ["Road"] = $location[White Citadel];
	foreach key in $strings[BarroomBrawl, BatHole, Conservatory, FunHouse, HaikuDungeon, NinjaSnowmen, PokerRoom, Slums] places[key] = to_location(key); 
	foreach key in places if(get_property("fistTeachings"+key).to_boolean()) 
		if (places[key] == here) Return TRUE;
	Return FALSE;
}

Now, I actually understand what that alias is doing too :)
 
Last edited:
I made a TeachFist script as well that will go learn any unlocked available Fist skills. And there are scripts as well that will tell you specifically where you need to go. If you haven't added the pref alias and don't like just doing pref fist instead of adding new scripts. :)
 
For what it is worth, my own fist skill script ended up looking like this eventually:

PHP:
if(my_path() != "Way of the Surprising Fist") {
	print("You are not a follower of the Way of the Surprising Fist. These skills are beyond you.");
	exit;
}

string to_place(string locale) {
	switch(locale) {
	case "BarroomBrawl": return "Barroom Brawl";
	case "HaikuDungeon": return "Haiku Dungeon";
	case "PokerRoom": return "Poker Room";
	case "Conservatory": return "Conservatory";
	case "BatHole": return "Bat Hole Entryway";
	case "FunHouse": return "Fun House";
	case "Menagerie": return "Menagerie 2";
	case "Slums": return "Pandamonium Slums";
	case "FratHouse": return "Frat House";
	case "Road": return "White Citadel";
	case "NinjaSnowmen": return "Ninja Snowmen";
	}
	return "";
}

// Print list of skills currently known, not just scrolls studied
skill [int] fist;
foreach s in $skills[Flying Fire Fist,Salamander Kata,Drunken Baby Style,Stinkpalm,Worldpunch,
  Knuckle Sandwich,Seven-Finger Strike,Miyagi Massage,Chilled Monkey Brain Technique,Zendo Kobushi Kancho]
	if(have_skill(s)) fist[count(fist)] = s;
if(count(fist) == 10 && have_skill($skill[Master of the Surprising Fist]))
	print_html("<b>You have mastered the Way of the Surprising Fist!</b>");
else if(count(fist) == 0)
	print_html("<b>You have not yet studied any Teachings of the Fists.</b>");
else {
	print_html("<b>You have learned "+count(fist)+" Way"+(count(fist) == 1?"":"s")+" of the Surprising Fist</b>");
	foreach i,s in fist
		print_html("   "+(s==$skill[Worldpunch]? "<span style='color:#B22222;font-weight:bold'>":"")+s+(s==$skill[Worldpunch]? "</span>":""));
}

// Are there unstudied scolls? Alert!
int scroll = available_amount($item[Teachings of the Fist]);
if(scroll > 0) print_html("<span style='color:#ff4500;font-weight:bold'>You possess "+scroll+" Teachings of the Fist"+(scroll == 1? "": "s")+" that you forgot to read.</span>");

// Print out locations left to learn fist skills
if(get_property("fistSkillsKnown") == "11") exit;
print("");
print_html("<b>Places left to learn Fist Skills</b>");
string [int] loc;
foreach l in $strings[HaikuDungeon, BarroomBrawl, BatHole]
	loc[count(loc)] = l;
if(my_primestat() == $stat[muscle]) loc[count(loc)] = "Conservatory";
else if(my_class() == $class[accordion thief] && knoll_available()) loc[count(loc)] = "FunHouse";
loc[count(loc)] = "Slums";
if(my_class() == $class[accordion thief] && !knoll_available()) loc[count(loc)] = "FunHouse";
foreach l in $strings[FratHouse, Menagerie, Road]
	loc[count(loc)] = l;
if(my_primestat() != $stat[muscle]) loc[count(loc)] = "Conservatory";
if(my_class() != $class[accordion thief]) loc[count(loc)] = "FunHouse";
loc[count(loc)] = "NinjaSnowmen";
loc[count(loc)] = "PokerRoom";
foreach i,l in loc
	if(!get_property("fistTeachings"+l).to_boolean())
		print_html("   "+to_place(l));
 
Back
Top