Coding Task List - Before IB2 Initial Release

Discuss anything in general about the IceBlink Engine + Toolset project (or anything else) here.

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Sun Jun 03, 2018 11:45 am

IB Beta v109 released - no liabilities, no warranties, use at your own risk:

https://www.dropbox.com/s/xwp8yj680w597 ... 9.zip?dl=0

- the focus of this rather larger update were triggers (and prop triggers) in encounters, aka event squares. This came with bug fixing/polishing spells that leave lingering effects on squares (eg flame walls or posion clouds)
- also a lot of scripts were adjusted to work in encounters, too, and the in battle trap system was fleshed out a bit more
- the approach here was to use our existing systems and tie them in, so the event squares are are little on contact spells casters opening up the whole spell and effect toolbox
- you can do anything form mine fields to healing pools to squares granting poisitional buffs, like bonus to hit, while a character or creature stands on them
- work was very tricky due to the way the animation and turn order systems work and rely on each other (I spare you the bloody details :roll: :lol: )
- I tested a lot and it looks bug free, but naturally my testing will always be limited and due to the nature of the work I expect some more bug reprots than usual coming in in the next weeks
- So here comes, what changed in detail:

- Triggers, in TriggerEvents tab in encounter editor:
- I added an "EveryStep" check box; when this is checked, the trigger will be called on every move; when unchecked, the trigger is only called on the start of a turn of a creature/pc standing on it
- as beforehand you can also set here whether only pc/ only creatures/ both can trigger it and how many charges the trigger has left; a message will be written to the log now once a trigger has been depleted
- gcTrue and gcFalse work in encounters now, too; this means that you can make event2 (true) and event3 (false) depend on the outcome of a gc check (eg call of gcPassSkillCheck script; note: use -1 for PCIndex to have the character who just stepped on the trigger make the skill roll) on event1
- large creatures will trigger the very same trigger (triggers can have many squares) only once per move now

Props Blueprints, in properties tab, in encounter editor ("Triggers(combat)" section)
- the "encounterPropTriggerOnEevryStep" property works like "Every step" decsribed beforehand for triggers
- as before with normal triggers you set whether only pc/ only creatures/ both can trigger the prop and how many charges the prop trigger has
- you can set that the prop is a trap and how difficult it is to disarm (dc)
- diasarming traps works via using a trait/spell that has as spell script "trRemoveTrap";eg a thief can "cast"/use it on a trap prop and then a skill roll is automatically made using "disabledevice" as trait to check for; on success the prop with the trap is removed

gaCastSpellEncounterTrigger.cs
The new script gaCastSpellEncounterTrigger can be used to cast spells from the script hooks of triggers or prop triggers; these will always target the square they are on (but might still affect a large area via spell radius and spell shape):

//gaCastSpellEncounterTrigger.cs - Cast a spell from a trigger (or prop trigger) in battle (during encounter)
//parm1 = tag of the spell
//parm2 = enter "true" (without "") to remove the effects applied by this spell after each step of a creature or pc (eg useful for positional buffs that shall only work while standing on a specific square), set to "false" for effects that shall last for their full duration regardless of moving on
//parm3 = caster level with which the spell is cast, like 10
//parm4 = enter the text to appear in the log to announce the casting of the spell in the combat log


Note: So far this is only for spells using spellEffectTagList to list their effects (ie not for those that use single tag (outdated property) or those that use a special script). You might experiment with the already existing "gaPropOrTriggerCastSpellOnThisSquare.cs" (which I saw too late, stupid me), but the work I did was done and tested with gaCastSpellEncounterTrigger.cs.

Other scritps adjusted for encounters (osSetProp, gaEnableDisableTrigger, gaEnableDisableTriggerEvent)
The scripts osSetProp, gaEnableDisableTrigger and gaEnableDisableTriggerEvent should work in battle, too, now. Using "thisProp" in osSetProp will directly target the prop that the script was called from.

Graphics
The spells called from triggers and prop triggers have their ending animations up an running (eg exploding fireball), including death aimations for creatures slain by them and damage floaties. Setting this up correctly (to work after each move) was simply painful.

Spells that create lingering effects
As introduced in v108 already (well more precisely, it was added by Jer before that and just expanded on a bit by me) you can have spells that implement lingering effects on squares (think gas clouds or flame walls). This is controlled by the spell properties "isUsedForCombatSquareEffects" and "triggeredEachStepToo". Such effects are applied on the start of each turn of a cretaure/pc standing on such a square. If "triggeredEachStepToo" is true, these effetcs are additionally applied after each step of a creature/pc that ends on a square that carries such an effect. This last mechanism makes it very painful to run through eg a flame wall or poisonous cloud. Better watch out how you move :mrgreen:. Death animations work, too, here for creatures. The squares that carry such lingering effects also show the effect symbol as indicator.

Done:-)
User avatar
youngneil1
Backer
Backer
 
Posts: 4467
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Sun Jun 03, 2018 4:06 pm

With event squares and lingering spells being quite powerful now, I think I might stay a bit in the eniocunter screen and add these:

- Victory conditions: 1) Survive (win after x rounds), 2) Destination (reach square x,y to win) and 3) Assassination (kill creature x to win)
- Loss Conditions: 1) Time pressure (lose after x rounds), 2) Protect (lose when player x <= 0 hp)
Note: All conditions are cumulative and can be combined (time pressure and survive logically exclude each other though)

- Timers of props: 1) Vanish after x rounds (shown, actice) or 2) Spawn after x rounds (shown, active))
Note: This is very handy for eg door/passage control or for escalating a battle after some time, spawning eg more traps; also this way rooms with creatures locked in could open up, creating reinforcment waves for the enemy.

- Battle modifiers: 1) Antimagic (no casting spells), 2) Fog (all ranged attacks minus 10 to hit), 3) Swampy (only one move per turn), 4) Deadly (players lose -x hp each turn)

A bit more structure for and infromation on the flow of battle:
- oprional message box at start of battle (eg informing about victory & loss conditions, battle modifiers and maybe other customized info)
- Round counter on middle of screen, like a big floaty maybe, shortly shown when a new round begins
- optional message box at end of battle declaring victory (and why the party did win) as well as showing rewards
User avatar
youngneil1
Backer
Backer
 
Posts: 4467
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Tue Jun 05, 2018 5:40 am

Combat round counter (in log and as floaty center screen) is working now (next beta) :) .
User avatar
youngneil1
Backer
Backer
 
Posts: 4467
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby Pongo » Tue Jun 05, 2018 10:40 am

This all sounds great, particularly:

youngneil1 wrote:- Victory conditions: 1) Survive (win after x rounds), 2) Destination (reach square x,y to win) and 3) Assassination (kill creature x to win)


It really opens up options for some interesting boss battles.
User avatar
Pongo
Backer
Backer
 
Posts: 593
Joined: Tue Nov 27, 2012 4:58 pm

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Tue Jun 05, 2018 12:16 pm

Thank you, Phil. I hope all of these will allow to spice up a few battles and make the player reconsider proven tactics. It will take some time to get all of this up & running, but then again without financial pressures from the IB project we (hopefully) got plenty of time :) .
User avatar
youngneil1
Backer
Backer
 
Posts: 4467
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby zach_holbrook » Wed Jun 06, 2018 5:09 pm

The new encounter square options add a great new layer of tactical possibilities to encounter design. Wow! I look forward to trying these out.
zach_holbrook
 
Posts: 131
Joined: Mon Dec 26, 2016 5:52 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Thu Jun 07, 2018 7:19 am

Great to hear! Any feedback is most welcome (and my apologies up front for the one or other bug we will certainly find during the process ;) .
User avatar
youngneil1
Backer
Backer
 
Posts: 4467
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Fri Jun 08, 2018 8:01 am

Slowly coding forward, bug fixing/convenience improving left and right while at it:

- PC with hp >0 are always drawn on top of their unsconscious/dead fellows now.
- Large cretaures in most instances only get damage once from AoEs.
- Gliding creatures in combat are removed instantly and will not glide half a second or so after death anymore.
- Message boxes at start of enounter and end of encounter are in (optional, also customizable in the long run)
- Round counter (see above already, log and floaty) and few fixes concerning it

A few occassional glitches remain, but I think the ui groundwork for victory and defeat conditions is there now. I begin with Assassination victory...
User avatar
youngneil1
Backer
Backer
 
Posts: 4467
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Sun Jun 10, 2018 9:23 am

- fixed a bug that allowed pc brought below zero hp by an attack of opportunity to still move another step
- had my first successfully registered assassination victory :)
User avatar
youngneil1
Backer
Backer
 
Posts: 4467
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Fri Jun 15, 2018 7:25 am

IB Beta v110 released - no liabilities, no warranties, use at your own risk:

https://www.dropbox.com/s/tx2xy5tqz9b9v ... 0.zip?dl=0

- first new alternative victroy conditon is in: assassination victory - win instantly by slaying a specific enemy
- added optional (and customizable or autogenerated) message box screens at start and end of an encounter, eg shwoing victory condtions and why a battle was won (also loot, exp, items found); this way ia battles do not lead as abruptly back to main screen, but inform the player beforehand
- lots of bug fixes and convenience improvemnts concerning combat:
- PC with hp >0 are always drawn on top of their unsconscious/dead fellows now.
- Large cretaures in most(all?) instances only get damage once from AoEs (inlcuding sweep/cleave now).
- Gliding creatures in combat are removed instantly and will not glide half a second or so after death anymore.
- Round counter (see above already, log and floaty) and few fixes concerning it
- fixed a bug that allowed pc brought below zero hp by an attack of opportunity to still move another step
- lots of bugs fixed concerning animations in general (mostly related to spell effect ending and death animations triggered by strepping on a square midturn)
User avatar
youngneil1
Backer
Backer
 
Posts: 4467
Joined: Sat Dec 08, 2012 7:51 am

PreviousNext

Return to General IceBlink Project Discussions

Who is online

Users browsing this forum: Bing [Bot] and 2 guests