New Content - Implemented Bees Hate You in the names of MONSTERS!

Bale

Minion
Monsters with B in their names will become much stronger in a Bad Bee run.

For each B, their ML (Attack, Defense, Hit Points) go up by 20%. However the experience they give remains the same.

Could their monster stats increase in a Bad Bee run? As the stats are now, an advanced consult script underkills the monsters. Otherwise of course a script could increase those stats by 20% before figuring out how to kill the monster. I really just need to know if this is on the roadmap for mafia so that an intelligent decision can be made to work the increased stats into a script.
 

Winterbay

Active member
It's not a hard workaround in a script. My change to zarqon's monster_stat function looks like this:
Code:
// adjusted monster stat (unknown_ml and current or projected +/-ML)
float monster_stat(string which)
{
	int bees = 0;
	if(my_path() == "Bees Hate You")
	{
		for i from 0 to length(to_string(m)) -1
		{
			if(char_at(to_string(m),i) == "b")
				bees = bees + 1;
		}
	}
	
	switch (which)
	{
		case "att":	return adj.att + (m == last_monster() ? monster_attack() : monster_attack(m)) + bees * ceil(0.2 * monster_attack(m));
		case "def":	return adj.def + (m == last_monster() ? monster_defense() : monster_defense(m)) + bees * ceil(0.2 * monster_defense(m));
		case "hp":	return adj.dmg[$element[none]] + max(1.0, (m == last_monster() ? monster_hp() : monster_hp(m))) + bees * ceil(0.2 * monster_hp(m));
	}
	return 0;
}
 

Bale

Minion
It's not a hard workaround in a script.

I wasn't expecting it to be hard. The problem is that if a script adjusts for B-levels and then KoLmafia starts to adjust for monster B-levels, then suddenly the script will be in error. It is good to know in advance if Veracity or slyz intends to add this soon, or merely someday.
 

Darzil

Developer
Monsters with B in their names will become much stronger in a Bad Bee run.

For each B, their ML (Attack, Defense, Hit Points) go up by 20%. However the experience they give remains the same.

Could their monster stats increase in a Bad Bee run? As the stats are now, an advanced consult script underkills the monsters. Otherwise of course a script could increase those stats by 20% before figuring out how to kill the monster. I really just need to know if this is on the roadmap for mafia so that an intelligent decision can be made to work the increased stats into a script.

Where is that spaded ? Reason I'm asking is that checking with Dwarven War Outfit neither Attack nor Defence change. They are also unusual in that the +%HP is applied after +ML rather than on base stats.

From reading around it looks like there is probably a +20% Att/Def/HP per B, applied during combat. As it applies during combat, it is on top of ML, doesn't appear from War Outfit for Att or Def, and doesn't affect stats gained. This also means it shouldn't be applied to the monster stats tables. Maybe as come kind of combat modifier, in the same way pirate stats change if they get embarrassed when insulted.

Actual Bee's look dead easy at present.
Low level Bees : Att = Mox + ML, Def = Mus + ML, HP = Def * .75 (rounded down)
Mid level Bees : Att = Mox + ML + 20, Def = Mus + ML + 20, HP = Def * .75 (rounded down)
High level Bees : Att = Mox + ML + 40, Def = Mux + ML + 40, HP = Def * .75 (rounded down)
 
Last edited:

Alhifar

Member
Here's a patch to add the bee monsters' stats, assuming the spading is correct. I haven't seen any spading regarding the drop rates of the handfuls of honey, though.
 

Attachments

  • beeshateyoumonsters.diff
    1.4 KB · Views: 44

Theraze

Active member
Quick validation... B-bonus only applies to non-actual-bee monsters, right?

Does it apply to other scaling monsters as well, or is it non-scaling only?

Edit: Small note regarding patch above... doesn't explicitly do floor/ceil on the rounding.
 
Last edited:

Theraze

Active member
Looked into implementing this, and the main problem lies in where to put it... do I put it into MonsterStatusTracker in the setNextMonsterName and have reset() and resetAttackAndDefense() both aware of the Bs needed, or do I put it directly into MonsterData? Can't put it into ML() since the modifications are different. Don't know if it applies to scaling monsters as well as non, so I don't know which set needs it... static or both. I'm tempted to put it into just the static monsters, since bee mobs probably don't get extra b-power, and that would be an easier way for them to have coded it...

Planning to make a new beeosity function inside MonsterData that figures out the proper multiplier so I'm not duplicating code 3 times.

Any thoughts regarding this? If Veracity would prefer this not be in mafia itself, I'll skip before wasting time (mine coding, hers rejecting a patch).

The negative about MonsterData is that it will make mafia expect better stat gains if I forget to fix getExperience, but if its properly set there, it shouldn't be an issue... just do (this.getAttack / this.getBeeosity) / 8.0f instead of the current this.getAttack / 8.0f and it should be right. Except in the cases of scaling mobs with Bs in the name... hmm...
 

Theraze

Active member
Okay, this patch does the following... Before:
You're fighting a Knob Goblin MBA
HP: 20, Atk: 25, Def: 23
Drops: baggie of powdered sugar (15), meat stack (25), meat stack (5)
After:
You're fighting a Knob Goblin MBA
HP: 32, Atk: 40, Def: 36
Drops: baggie of powdered sugar (15), meat stack (25), meat stack (5)
Both at 0 ML, but the second has a 60% bonus (rounded down) from 3 Bs in the name.

Unfortunately it calculates this on each consideration of MonsterData.getAttack and the like, but that's because if you've left Beecore since it initially loaded the data files when you logged in, the increase no longer applies...
 

Attachments

  • BeeMonsters.patch
    3.2 KB · Views: 18

Veracity

Developer
Staff member
What's with the "this.attack instanceof Integer" in the following? Why are you dividing the attack by the beeosity ?
Code:
return ( this.getAttack() / ( this.attack instanceof Integer ? this.getBeeosity() : 1 ) ) / 8.0f;

Edit: OK. I didn't see you had TWO posts above mine that I hadn't read. The Integer test eliminates scaling monsters, eh?
 
Last edited:

Theraze

Active member
Yep, because otherwise scaling monsters would get their experience dropped as well as the static ones. Tested and static monsters did have the same displayed experience before and after... knob goblin accountant was at 3.92 instead of 5.50 with 10 ML.

The reason I finally bit the bullet and made the change/patch is because I was tired of BBB setting my MCD to levels where I was going to die. :) This way, it knows that the cubist bull is dangerous long after the rest of the gallery is safe, etc.
 

Darzil

Developer
Hope to answer the question about scaling mobs with B's in the name shortly. Just burning the rest of ronin on my alt with Dwarven outfit in beecore so I can buy stuff to access areas with scaling monsters, as he has none he can pull.

Answer is (not surprisingly as the extra Att and Def and HP is applied 'in fight'), that Beelephant at least does get 20% extra Att, Def and HP.
 
Last edited:

Darzil

Developer
Also Hipster monsters get extra if they have a B in the name : Blue haired Girl.

Other than this, throughout an ascension, stats looking spot on.
 

Theraze

Active member
So, our answer is that the bees don't have another additional scaling bump, but other "b" scaling monsters including ones with "bee" in the name do?

Edit: Best way to implement this by having a ceil(5/(5+beecount)) modification to the actual Bee stats per B? That way, when it raises the stats on scaling monsters, it should be proper again... And better to have slightly higher numbers than slightly low.

Edit2: Okay, so my personal copy of monsters.txt now has .625 (3/4th * 5/6th is 15/24ths, reduces to 5/8ths, which is .625) for the 1-b on hp, as well as 5/6 for the attack/def stats. The 2-b are 15/28 on hp (3/4 * 5/7ths, 15/28ths, can't reduce) and 5/7ths on the attack/def.

Edit3: Made my mafia modifications, but it's not working quite right yet. I'll need to consider it some more.
 
Last edited:

Theraze

Active member
Ah, the scaling bees were actually added higher in the monsters.txt file, so my personal copy had duplicate monsters on them, and the first edition of the monsters is the one that gets applied. Anyways, it's working now that I removed my initial copy. :)

So, two patches. Both make all scaling monsters get beeosity modifiers as well as the static ones. Difference between the two is that ScalingBeeOnly only updates Bee monsters. ScalingBees updates a bunch of other monsters as well, such as that the protector spectres have 100 phys resistance, etc. Which is how it gets from 4.1k to 57.6k...
 

Attachments

  • ScalingBees.patch
    57.6 KB · Views: 21
  • ScalingBeeOnly.patch
    4.1 KB · Views: 17
Top