First Things First -- a multipurpose pre-combat consult script

Status
Not open for further replies.
@Rinn: that sounds good -- I'll change it to only fire if a) your HP is lower than your healing setting and it's better than your out-of-combat restore options as informed by UR, or b) your HP is less than expected_damage().

That would be awesome. Though there are still times when Saucy Salve is great even if it isn't efficient, like stasising gremlins.


@Bale: I honestly haven't been a DB since before Crimbo. This skill can be used freely anytime? The only limitation is once per combat, then?
Correct. It can be used before picking pockets. It can be used after picking pockets. It can be used when your opponent is half dead. Only once per combat. When you use it, KoL's turn counter is not incremented, just like the first use of Saucy Salve.

The only question is if it makes killing the monster more efficient. That's why I think it is more of a BatMan skill.
 
Last edited:
w00t, other people helping!

Glazius, correct me if I'm wrong, but the only changes you made to FTF here were the two lines you actually mentioned in the post, right? I'm adding your updates into my local FTF so I can have everything in one place for my upcoming update.

The tool you want is a diff utility. Handy in general.
 
This doesn't appear to be a bug per se, so I'll call this a feature request.

I have funkslinging and some unidentified potions.

Code:
[573] Dungeons of Doom
Encounter: swarm of killer bees
Strategy: default_attacks.ccs [default]
Round 0: sepos wins initiative!
Checking for updates (running First Things First ver. 3.6)...
_version_FTF => 3.6
You have a current version of First Things First.
Checking for updates (running SmartStasis ver. 2.3)...
_version_SS => 2.3
You have a current version of SmartStasis.
1/7 monsters dropping 1 goals.
Round 1: sepos uses the milky potion!
You lose 3 hit points
Round 2: sepos uses the cloudy potion!
You lose 4 hit points
You acquire an effect: Somewhat Poisoned (duration: 10 Adventures)
Round 3: sepos uses the effervescent potion!
All bang potions have been identified!
You lose 17 hit points

CCS is:

Code:
[ default ]
1: consult SmartStasis.ash
2: attack with weapon

Could FTF funksling the bang potions for identification? (I haven't tried to patch it to do so myself yet, but I might.)
 
Could FTF funksling the bang potions for identification? (I haven't tried to patch it to do so myself yet, but I might.)
I've also found this awkward. While it hasn't troubled me enough to fix it myself yet, I would appreciate the improvement.
 
Minor nitpick, but it uses the insult book on monsters that aren't pirates (e.g. booty crab) if your location is still Barrrney's.

(Possible fix: add contains_text(nowfightingonstageone.to_string(), "pirate") to the condition)
 
Maybe I'm missing something, but it looks like it casts noodles if autoEntangle is false, rather than when it's true.

Maybe it should also take advantage of the noodles to autoidentify potions and spheres even if you don't outmoxie the monster.

It also continues to use flyers even if you've already reached 10,000 arena ML. The property flyeredML would be used for this.
 
This makes up for adeyke's recent confusion about the Greater-than-Sign's default goal condition.

  1. Maybe I'm missing something, but it looks like it casts noodles if autoEntangle is false, rather than when it's true.
  2. Maybe it should also take advantage of the noodles to autoidentify potions and spheres even if you don't outmoxie the monster.
  3. It also continues to use flyers even if you've already reached 10,000 arena ML. The property flyeredML would be used for this.

  1. Huh. Yeah, it does look that way.
  2. Agreed. I'd like that as well. I'd suggest teaming up on zarqon to implement that, but he's still On His Period.
  3. Good point.
 
Last edited:
1. Yes, because if autoEntangle is true, mafia will handle noodling before FTF is called.
2. That would be smart. Noodling probably needs reworking.
3. What? It doesn't already do that? Stupid.

@heeheehee: seems like contains_text(" pirate") might be the only detection needed...?

Now everyone bugger off and leave me alone! Or at least give me some chocolate.
 
Huh? I was pretty sure that if mafia is using a CCS, it won't auto entangle unless "special action" is used as the first line of the CCS. Was I wrong all this time?
 
That code is from before "special action" existed. It was necessary to avoid double-casting noodles. Since that's evidently no longer the case, I'll remove it when I refactor noodling.
 
I'm not sure if it's this or the new daily build but i just upgraded my First Things First script at mafias prompting and I'm now getting the error:

Variable hpgoal is already defined (SmartStasis.ash, line 65)
Consult script 'SmartStasis' not found.
You're on your own, partner.

And I confirmed that it's the update. I rolled back to the last working version of mafia and I still get the error.
 
Last edited:
I like both smart stasis and first things first, but why can't it just give you a pop up to let you know that their is a new version instead of that horrible countdown before every adventure? That bugs me something awful.
 
Hahahahahahahahaha

EDIT: Sorry for the fun at your expense; you evidently weren't around when it used to do exactly that, and everyone hated it. The idea with the countdown is that it won't prevent automation from continuing, but it will still be annoying enough that you will want to update.
 
Last edited:
Moral: If you cave it to what "everyone" is demanding, you'll still displease someone. ::shrug::
 
Patch to enable funkslinging of bang potions:

Code:
diff --git a/FirstThingsFirst.ash b/FirstThingsFirst.ash
index c94c54a..4c34800 100644
--- a/FirstThingsFirst.ash
+++ b/FirstThingsFirst.ash
@@ -321,10 +321,32 @@ string use_special_item(string page) {    // mostly doesn'
          page = act(throw_item($item[roller skate decoy])); break;
    }
   // ID bang potions: always ID multiples, ID singles only if mafia's autoPotio
-   if (my_level() > 5 && intheclear() && vprint("Checking for unidentified poti
+   if (my_level() > 5 && intheclear() && vprint("Checking for unidentified poti
+      int firstpotion = 0; int secondpotion = 0;
       for i from 819 to 827
          if (get_property("lastBangPotion"+i) == "" && item_amount(to_item(i)) 
-            page = act(throw_item(to_item(i)));
+         {
+            vprint(to_string(to_item(i)) + " unidentified", 11);
+            if (firstpotion == 0)
+            { 
+              vprint("planning to throw " + to_string(to_item(i)), 10);
+                firstpotion = i;
+            }
+            else if (secondpotion == 0)
+            {
+                vprint("planning to throw " + to_string(to_item(i)), 10);
+                secondpotion = i;
+            }
+         }
+     if (firstpotion != 0 && secondpotion != 0 && have_skill($skill[ambidextrou
+        vprint("throwing " + to_string(to_item(firstpotion)) + " and " + to_str
+        page = act(throw_items(to_item(firstpotion), to_item(secondpotion)));
+     }
+     else if (firstpotion != 0) {
+        vprint("throwing " + to_string(to_item(firstpotion)), 6);
+        page = act(throw_item(to_item(firstpotion)));
+     }
+   }
   // ID spheres transparent with mafia's autoSphereID
    if (my_level() > 10 && get_property("autoSphereID") == "true" && intheclear(
       for i from 2174 to 2177

I'll do spheres when I get there, if they still need doing.
 
Last edited:
Status
Not open for further replies.
Back
Top