I've play testing and bug fixing the past few days. One thing I noticed is how overpowered the current sleep spell is. I created a new property for Effects called "worksOnLevelOrLowerOnCreatureOrPc". I know, not a very descriptive property name It basically is used to see if a creature (or PC) is above this level and if it is, they are immune to the effect (spell, trait, item, etc.). So now the sleep spell (I haven't thought of any others that would need the value changed from its default of 99) will only impact creatures and PC level 1 and 2 (level 3 and up are immune). Hold, web, and entangle have their value set to 99 so they work on everything still (depending on DC check). I was able to put some powerful creatures to sleep and that just seemed wrong
public bool isCreatureImmuneToEffect(Creature crt, Effect ef)
//see if their level is greater than the effect works on level
if (crt.cr_level > ef.worksOnLevelOrLowerOnCreatureOrPc)
//go through each trait to see if have trait with immune effect
foreach (EffectTagForDropDownList efTag in crt.immuneToEffectTagList)
if (efTag.tag == ef.tag)
//go through each effect to see if it is a remove effect type
foreach (Effect pcEf in crt.cr_effectsList)
if (pcEf.removeEffectTagList.Count > 0)
foreach (EffectTagForDropDownList efTag in pcEf.removeEffectTagList)
Interesting. If I could share a few thoughts on the idea:
Sleep in IceBlink has for a while been the only mass/AoE debuff spell. It is very useful for crowd control, and with the limited spell selection, often a wizard had to choose between mage bolt or sleep for their first spell choice. The spell does have a saving throw, a dc 10 fortitude check, I believe. Powerful creatures can have much higher saves, and this also leads to a sort of immunity, as with a fortitude of 6, for example, a creature only needs to roll a 4 or better to resist the spell. The chances improve with higher attributes, and a monster with a fortitude of 10 practically is immune.
Sleep is not as deadly as it was in the Gold Box games, where helpless creatures and characters could be killed in one hit. Instead, this just incapacitates the target for a few rounds, and are subject to +4 to hit them. I think that is fair, and again, it is all saving throw dependent.
Conversely, many enemy spell casters/monsters will start throwing sleep around and I think it is a good challenge for a mid-level party, should characters fail their saving throws. I would hate to take that out of a creature's arsenal, simply because PCs have reached level 3 or higher.
I think it is good to have the setting in the effects, so it can be adjusted by the builder per module. These are just some thoughts based on what I've experienced. As always, I look forward to seeing the new change in action.
That's a good point about the DC. I guess I was looking at the SRD and it has sleep affecting up to 4HD of creatures (4 1HD, 2 2HD, or 1 4HD etc.). I was playing The Elderin Stone and putting everything to sleep, but I just checked the sleep effect and it has "saveCheckType" set to "none" so maybe that'll help. But, yeah, the value can be set to 99 so that nothing changes from now.
The SRD has:
Effects DC - base save bonus(reflex,will,fortitude) - attribute mod(dex,wis,con) + effect level + effect originators attribute mod (wis,int,cha,etc.)
natural 1 always fails and natural 20 always passes
In IBbasic, I have only been using: Effects DC - Base Save Bonus
Maybe I should include the other modifiers as well?
for example, the SRD says that the DC for a wizard is:
"The Difficulty Class for a saving throw against a wizard’s spell is 10 + the spell level + the wizard’s Intelligence modifier"
So for IBbasic, I changed the sleep spell back to affecting everyone (not just those under level 4) and will instead rely on save checks. I updated the entire save check system in IBbasic to use the following formula:
DC = effect DC (typically 10) + spell level (1-4) + caster's applicable attribute bonus (int, wis, cha) saving throw bonus = base save bonus (from class table of reflex, fortitude, will) + attribute modifier (reflex=dex, fortitude=con, will=wis)
if d20 roll + saving throw bonus >= DC then you passed
I've finished the code and will start testing it out tomorrow after I update all the creatures in the various modules (I already updated the standard creatures, spells, traits, and effects)
I changed the IBbasic apply effects in combat system to check effects at the same time each round as they were applied. I was checking all effects at the start of each round and I think IB checks the effects stored on the creature/PC on their turn. The way I am doing it now is I record the move order index of the caster onto the effect square or the effect stored on the creature/PC. Then I check on each turn to see if any effects need updating if their move order index stored matches the current move order index. So the effect is checked and applied at the time of casting and then is not checked again until the next turn of the original caster of that spell/trait/item (exactly one full round later).
Also, I changed the info hover over in IBbasic to be more like what is in IB. The info now pops up in the log (over the top of the log) when you hover over a creature or PC (see images below). I used to have the info (very little info) directly over the top of the token and this was to obstructive I think. I think this new method is much cleaner, what do you think?
I also changed the AC bonus for adjacent allies to only be +0.5 per ally so you need at least two allies to gain +1. I think this makes grouping your party together a little less beneficial, but still makes you think about it. spreading out is better to avoid AoE attacks, but standing together gains a small AC bonus. I think this is more balanced.
I think that is a good change regarding effects, I guess that has to do with debuffs that would end on a round but the character would not lose the status until their next turn. Should be better now.
The AC bonus sounds right. I do like the tactical considerations, and seems a fair tradeoff between better protection and vulnerability to AoE spells.
Going back to the sleep spell, I think removing the limitation is a good call. Following the SRD is a smart guideline, but there are some mechanical/system differences with IceBlink, I just wouldn't want to make certain spells obsolete as characters reach higher levels. Also, I double checked and the dc that I have is 15 for Sleep. So it is pretty powerful, but I think encounters can be built around that.
Thanks Dorateen for the input and insight. I submitted v17 to the Apple App Store for review with a setting to not release until the 19th. Apple takes longer to approve than Google Play so I needed to get a build out now. I'll post v17 to Google Play on Wednesday with a release date setting of the 19th. I can post v17 to the NW Vault on Friday morning. So hopefully everything will be ready to go on the 19th for the initial release of IBbasic. I suppose there will be some bug reports once people start playing with it, but so far it has mostly just been me play testing. Hopefully no major bugs though.
I finished a little early and Apple approved the update. I think I will release IBbasic v1.0.17 tomorrow evening so it should be officially out there on Thursday. That should give me some time on the weekend to fix any bug reports that show up.