From e4500c9e6f17222b62d44223e4c83ecc78ccc950 Mon Sep 17 00:00:00 2001 From: OfficialCHenry Date: Mon, 25 Apr 2022 21:23:28 -0400 Subject: [PATCH 1/4] added dot timers to player --- .../Player/PlayerController.ts | 41 ++++++++++++++----- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/src/shattered_sword/Player/PlayerController.ts b/src/shattered_sword/Player/PlayerController.ts index 6b375bb..33d3fcb 100644 --- a/src/shattered_sword/Player/PlayerController.ts +++ b/src/shattered_sword/Player/PlayerController.ts @@ -133,16 +133,15 @@ export default class PlayerController extends StateMachineAI implements BattlerA cooldownMultiplier : number = 1; fullHpBonus: Boolean = false; - //TODO - add new buffs here - /* - CURRENT_BUFFS: { - atk: number; //flat value to add to weapon - hp: number; //flat value - def: number; //flat value - speed: number; //flat value - range:number; //range will be a multiplier value: 1.5 = 150% range - } - */ + poisonTimer : Timer; + poisonCounter : number = 0; + + burnTimer : Timer ; + burnCounter : number =0; + + bleedTimer : Timer; + bleedCounter :number = 0; + @@ -174,6 +173,11 @@ export default class PlayerController extends StateMachineAI implements BattlerA PlayerController.buffPool.push(BuffCategory.HEALTH); } + //initialize dot timers + this.burnTimer = new Timer(1000); + this.bleedTimer = new Timer(1000); + this.poisonTimer = new Timer(1000); + //to test the buffs //this.addBuff( {type:BuffType.HEALTH, value:1} ); //this.addBuff({type:BuffType.BURN, value:1, category:BuffCategory.DOT}); @@ -237,6 +241,23 @@ export default class PlayerController extends StateMachineAI implements BattlerA item.use(this.owner, "player", this.lookDirection); } } + + //check dot effects + if(this.burnTimer.isStopped() && this.burnCounter >0){ + this.burnCounter --; + this.burnTimer.start(); + this.damage(10); + } + if(this.poisonTimer.isStopped() && this.poisonCounter >0){ + this.poisonCounter --; + this.poisonTimer.start(); + this.damage( Math.round(this.CURRENT_HP/20) ); + } + if(this.bleedTimer.isStopped() && this.bleedCounter >0){ + this.bleedCounter --; + this.bleedTimer.start(); + this.damage( 2 + Math.round(this.CURRENT_HP/33) ); + } } From da40ee0b59d95f29095c85158d788c6782608bc5 Mon Sep 17 00:00:00 2001 From: OfficialCHenry Date: Mon, 25 Apr 2022 21:31:30 -0400 Subject: [PATCH 2/4] modified dot effects, changed range buff --- src/shattered_sword/AI/EnemyAI.ts | 7 ++++--- src/shattered_sword/Player/PlayerController.ts | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/shattered_sword/AI/EnemyAI.ts b/src/shattered_sword/AI/EnemyAI.ts index 65aee5e..4050bfb 100644 --- a/src/shattered_sword/AI/EnemyAI.ts +++ b/src/shattered_sword/AI/EnemyAI.ts @@ -216,17 +216,18 @@ export default class EnemyAI extends StateMachineAI implements BattlerAI { if(this.burnTimer.isStopped() && this.burnCounter >0){ this.burnCounter --; this.burnTimer.start(); - this.damage(5 + (this.player._ai).extraDotDmg + (this.player._ai).CURRENT_ATK * .2); + this.damage(12 + (this.player._ai).extraDotDmg ); } if(this.poisonTimer.isStopped() && this.poisonCounter >0){ this.poisonCounter --; this.poisonTimer.start(); - this.damage(5 + (this.player._ai).extraDotDmg + (this.player._ai).CURRENT_ATK * .2); + this.damage( Math.round(this.CURRENT_HP/20) + (this.player._ai).extraDotDmg ); } + if(this.bleedTimer.isStopped() && this.bleedCounter >0){ this.bleedCounter --; this.bleedTimer.start(); - this.damage(5 + (this.player._ai).extraDotDmg + (this.player._ai).CURRENT_ATK * .08); + this.damage(3 +Math.round(this.CURRENT_HP/33) + (this.player._ai).extraDotDmg ); } if (this.healthBar) { diff --git a/src/shattered_sword/Player/PlayerController.ts b/src/shattered_sword/Player/PlayerController.ts index 33d3fcb..7be15ad 100644 --- a/src/shattered_sword/Player/PlayerController.ts +++ b/src/shattered_sword/Player/PlayerController.ts @@ -366,7 +366,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA buffs.push({type:BuffType.FLAT_ATK, value:num, category: BuffCategory.EXTRA}, {type:BuffType.SPEED, value:num, category: BuffCategory.EXTRA}, {type:BuffType.FLAT_HEALTH, value:num, category: BuffCategory.SHIELD}, - {type:BuffType.RANGE, value:num/10, category: BuffCategory.ATTACK}, + {type:BuffType.RANGE, value:num/100, category: BuffCategory.ATTACK, string: "\n\nIncrease range \nby "+num/100+"%"}, {type:BuffType.ATKSPEED, value:num, category: BuffCategory.ATTACK}, ); @@ -560,7 +560,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA this.damage_multiplier *= (1-buff.value); break; case BuffType.RANGE: - //this.CURRENT_BUFFS.range += buff.value; + if (item) { (item).EXTRA_RANGE += buff.value; } From c9a2b97104a7b8706460a9f0357177cd0b988a84 Mon Sep 17 00:00:00 2001 From: Kelly Peng Date: Mon, 25 Apr 2022 21:34:43 -0400 Subject: [PATCH 3/4] add level 1 story --- .../images/controls.png | Bin 0 -> 948 bytes dist/shattered_sword_assets/images/guide1.png | Bin 0 -> 978 bytes dist/shattered_sword_assets/images/guide2.png | Bin 0 -> 1067 bytes dist/shattered_sword_assets/images/guide3.png | Bin 0 -> 1051 bytes dist/shattered_sword_assets/images/guide4.png | Bin 0 -> 1048 bytes .../jsons/level1story.json | 102 ++++++++++++++++++ src/shattered_sword/Scenes/GameLevel.ts | 2 +- 7 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 dist/shattered_sword_assets/images/controls.png create mode 100644 dist/shattered_sword_assets/images/guide1.png create mode 100644 dist/shattered_sword_assets/images/guide2.png create mode 100644 dist/shattered_sword_assets/images/guide3.png create mode 100644 dist/shattered_sword_assets/images/guide4.png create mode 100644 dist/shattered_sword_assets/jsons/level1story.json diff --git a/dist/shattered_sword_assets/images/controls.png b/dist/shattered_sword_assets/images/controls.png new file mode 100644 index 0000000000000000000000000000000000000000..3a1c0c314d41d21df7dfc0e920014499b1a498e3 GIT binary patch literal 948 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 literal 0 HcmV?d00001 diff --git a/dist/shattered_sword_assets/images/guide3.png b/dist/shattered_sword_assets/images/guide3.png new file mode 100644 index 0000000000000000000000000000000000000000..c4d633adcdec816f7f067fe0a73067981cb57072 GIT binary patch literal 1051 zcmV+$1mydPP)003YJ1^@s6nkRXg00001b5ch_0Itp) z=>Px&)k#D_RCt{2-7#wvK^VsISMd`BEbDr^Gea+uLc=tNUaUgv+ttZrmPekO~=}+|-G=q5n0Sy9( zsDcJ?WwoPv9qq#kh^Q(HAgdnoumU0~0*I(?g`E7u`@`$4H~aO#W$z;7As}%<11K^Y zw&AY<5w>7NW*)$@SG$+J3$|a_Z^1j;Tk`znEA<$(Q;_$71PWyZsX;9*F00xtUr&#z zV*#jM;mYG%E{#1NX`6Z#>{~94Js#=fJ|Ln}Uj=9H^Jzcb@EMP;2EmDSGJ z4?OR+P~%0$1E(F2v_#*62~WFuZ^0VFjhNxr&|c~Q=52w#;|XDVRk{UJ%SV>!XTe9^ zlc^yq+JeipV|>RWEvf+KZI#;X(`UP7t8Sj?SHWnvsR1nep6#f6B1hd5=kb%usgzrr zZ|Vp4voj0*kDm`z6YgwpUDvCY7MJ@j6`LQ`Dsp_SA&Pv~gu_%XX z!zUv0<4=EN3?)^)l+PLW0TGq+M{ySA(9QKZ+1>9={Bu>ufq0w)=-Z01FsVsH!={`R z&XdU&?D`Mc-S5ff`kaWkt$vflKB;vuSTJHYl)MAz`&%>!p;h=$EE~F*A@mBM#S%UU z-(V#~SgAcY-s>X7DtscgD`5)nZBmumdGRWwhAxL*ogIrzSsC*Rt|5-2ZK^zHW>>*3 zva6lT>X+JYG<3KTji^co(4rh#_Cn+8?D+ro8|XONCgpQhdJDFA^65rrPu?CrE*>}( z)Q!%b`Ej&O%I8e=9?;^TvVn5Z_CUEv^_;0HHx}j4yZ7Fx=J@{Q$=Do}RP{J#K#p3b z+@;@^GHv-Y_ETpq%dNG$4b!yniRj9ov7b6?U2d&i0MRT2ut8!K3VgmV0c?oay*}6P zAN+sIM0l=0{GunBxy+{>#|l_;zE7;xyk3U(cnDz4`L=003YJ1^@s6nkRXg00001b5ch_0Itp) z=>Px&(n&-?RCt{2-7!xTK^VsISK}ujvEUOxVM${{LS^V|EaXBd1qIQV&`2~GZAgs7 zf&xo}7KX%xf>B@u0J!qvnA$f}1TtblMu0O9IJ%E{lq+q>L)hrhmX);&%66p*>30TdYw zTmRR92wO0mnFp}y+3s2Qlee7>BEw6A3p7>CfwY3a#^ohm|yILlvAz7BY&mu0q@^kQB62|>*m0}W6P`O(c^oIP?eUFDF>O7=*7}|Lg84I)Jgkxd@^6Ut*gKht4yEQ313F&cz(w ze~E38+l}L+PC~50Ct|x2@*Z%s+;*C%LTc)AXxSWFJKfT=;PaD1k%I5RXp?LfnVkh& z%n>ptD_y;DAsVhK2hgG%YB5LAmRscf!;imA7DvJD*z2vDVp^H+v7u2lfSZ zt+TCq%%;ituC=Q7fEG{6Vve>4DnzcuURCABq8w^5$L%|>Rdam%{HXPHEQ-BAfm)_K zq~De^ZTZvtuCtcq*4kZ$X4X}Wr` Date: Mon, 25 Apr 2022 21:39:34 -0400 Subject: [PATCH 4/4] added enemiesKilledCounter, modified dot damage on player --- src/shattered_sword/Player/PlayerController.ts | 13 +++++-------- src/shattered_sword/Scenes/GameLevel.ts | 3 +-- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/shattered_sword/Player/PlayerController.ts b/src/shattered_sword/Player/PlayerController.ts index 7be15ad..246f3a8 100644 --- a/src/shattered_sword/Player/PlayerController.ts +++ b/src/shattered_sword/Player/PlayerController.ts @@ -142,7 +142,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA bleedTimer : Timer; bleedCounter :number = 0; - + enemiesKilled : number =0; //TODO - get the correct tilemap @@ -156,9 +156,6 @@ export default class PlayerController extends StateMachineAI implements BattlerA this.inventory = options.inventory; this.lookDirection = new Vec2(); - - //this.CURRENT_BUFFS = {hp:0, atk:0, def:0, speed:0, range:0}; - //i frame timer PlayerController.invincibilityTimer = new Timer(2000); @@ -246,17 +243,17 @@ export default class PlayerController extends StateMachineAI implements BattlerA if(this.burnTimer.isStopped() && this.burnCounter >0){ this.burnCounter --; this.burnTimer.start(); - this.damage(10); + this.damage(5); } if(this.poisonTimer.isStopped() && this.poisonCounter >0){ this.poisonCounter --; this.poisonTimer.start(); - this.damage( Math.round(this.CURRENT_HP/20) ); + this.damage( Math.round(this.CURRENT_HP/33) ); } if(this.bleedTimer.isStopped() && this.bleedCounter >0){ this.bleedCounter --; this.bleedTimer.start(); - this.damage( 2 + Math.round(this.CURRENT_HP/33) ); + this.damage( 2 + Math.round(this.CURRENT_HP/50) ); } } @@ -366,7 +363,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA buffs.push({type:BuffType.FLAT_ATK, value:num, category: BuffCategory.EXTRA}, {type:BuffType.SPEED, value:num, category: BuffCategory.EXTRA}, {type:BuffType.FLAT_HEALTH, value:num, category: BuffCategory.SHIELD}, - {type:BuffType.RANGE, value:num/100, category: BuffCategory.ATTACK, string: "\n\nIncrease range \nby "+num/100+"%"}, + {type:BuffType.RANGE, value:num/100, category: BuffCategory.ATTACK, string: "\n\nIncrease range \nby "+num+"%"}, {type:BuffType.ATKSPEED, value:num, category: BuffCategory.ATTACK}, ); diff --git a/src/shattered_sword/Scenes/GameLevel.ts b/src/shattered_sword/Scenes/GameLevel.ts index 6fe8977..780f87c 100644 --- a/src/shattered_sword/Scenes/GameLevel.ts +++ b/src/shattered_sword/Scenes/GameLevel.ts @@ -289,8 +289,7 @@ export default class GameLevel extends Scene { (this.player._ai).giveExp(event.data.get("ai").exp_val); } node.destroy(); //destroy enemy node - //TODO - this is for testing, add some chance here later - //this.emitter.fireEvent(Player_Events.GIVE_BUFF); + (this.player._ai).enemiesKilled++ ; break; case Player_Events.GIVE_REGULAR_BUFF: