added dot effects
need to add dot dmg buff
This commit is contained in:
		
							parent
							
								
									e0b399af43
								
							
						
					
					
						commit
						c1a00694f6
					
				|  | @ -23,6 +23,7 @@ import MathUtils from "../../Wolfie2D/Utils/MathUtils"; | ||||||
| 
 | 
 | ||||||
| import { Player_Events } from "../sword_enums"; | import { Player_Events } from "../sword_enums"; | ||||||
| import InputWrapper from "../Tools/InputWrapper"; | import InputWrapper from "../Tools/InputWrapper"; | ||||||
|  | import Timer from "../../Wolfie2D/Timing/Timer"; | ||||||
| export default class EnemyAI extends StateMachineGoapAI implements BattlerAI { | export default class EnemyAI extends StateMachineGoapAI implements BattlerAI { | ||||||
|     /** The owner of this AI */ |     /** The owner of this AI */ | ||||||
|     owner: AnimatedSprite; |     owner: AnimatedSprite; | ||||||
|  | @ -65,6 +66,16 @@ export default class EnemyAI extends StateMachineGoapAI implements BattlerAI { | ||||||
| 
 | 
 | ||||||
|     exp_val: number =0; //exp value to give player when this dies
 |     exp_val: number =0; //exp value to give player when this dies
 | ||||||
| 
 | 
 | ||||||
|  |     poisonTimer : Timer; | ||||||
|  |     poisonCounter : number = 0; | ||||||
|  | 
 | ||||||
|  |     burnTimer : Timer ; | ||||||
|  |     burnCounter : number =0; | ||||||
|  | 
 | ||||||
|  |     bleedTimer : Timer; | ||||||
|  |     bleedCounter :number = 0; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     initializeAI(owner: AnimatedSprite, options: Record<string, any>): void { |     initializeAI(owner: AnimatedSprite, options: Record<string, any>): void { | ||||||
|         this.owner = owner; |         this.owner = owner; | ||||||
| 
 | 
 | ||||||
|  | @ -107,6 +118,12 @@ export default class EnemyAI extends StateMachineGoapAI implements BattlerAI { | ||||||
|         //exp value
 |         //exp value
 | ||||||
|         this.exp_val = options.exp; |         this.exp_val = options.exp; | ||||||
| 
 | 
 | ||||||
|  |         //TODO - dots every 1 sec? can change
 | ||||||
|  |         this.burnTimer = new Timer(1000); | ||||||
|  |         this.bleedTimer = new Timer(1000); | ||||||
|  |         this.poisonTimer = new Timer(1000); | ||||||
|  | 
 | ||||||
|  |          | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     activate(options: Record<string, any>): void { } |     activate(options: Record<string, any>): void { } | ||||||
|  | @ -116,7 +133,7 @@ export default class EnemyAI extends StateMachineGoapAI implements BattlerAI { | ||||||
|         this.CURRENT_HP -= damage; |         this.CURRENT_HP -= damage; | ||||||
|         //TODO -
 |         //TODO -
 | ||||||
|         this.owner.animation.play("HURT",false); |         this.owner.animation.play("HURT",false); | ||||||
|         //console.log(damage +" damage taken, "+this.CURRENT_HP+" hp left");
 |         console.log(damage +" damage taken, "+this.CURRENT_HP+" hp left"); | ||||||
| 
 | 
 | ||||||
|         // If we're low enough, add Low Health status to enemy
 |         // If we're low enough, add Low Health status to enemy
 | ||||||
|         if (this.CURRENT_HP <= Math.floor(this.maxHealth/2)) { |         if (this.CURRENT_HP <= Math.floor(this.maxHealth/2)) { | ||||||
|  | @ -203,6 +220,22 @@ export default class EnemyAI extends StateMachineGoapAI implements BattlerAI { | ||||||
|         } |         } | ||||||
|         */ |         */ | ||||||
|          |          | ||||||
|  |         //TODO - add extra dot damage
 | ||||||
|  |         if(this.burnTimer.isStopped() && this.burnCounter >0){ | ||||||
|  |             this.burnCounter --; | ||||||
|  |             this.burnTimer.start(); | ||||||
|  |             this.damage(5); | ||||||
|  |         } | ||||||
|  |         if(this.poisonTimer.isStopped() && this.poisonCounter >0){ | ||||||
|  |             this.poisonCounter --; | ||||||
|  |             this.poisonTimer.start(); | ||||||
|  |             this.damage(5); | ||||||
|  |         } | ||||||
|  |         if(this.bleedTimer.isStopped() && this.bleedCounter >0){ | ||||||
|  |             this.bleedCounter --; | ||||||
|  |             this.bleedTimer.start(); | ||||||
|  |             this.damage(5); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ import GameNode from "../../Wolfie2D/Nodes/GameNode"; | ||||||
| import BattlerAI from "../AI/BattlerAI"; | import BattlerAI from "../AI/BattlerAI"; | ||||||
| import Weapon from "./items/Weapon"; | import Weapon from "./items/Weapon"; | ||||||
| import PlayerController from "../Player/PlayerController"; | import PlayerController from "../Player/PlayerController"; | ||||||
|  | import EnemyAI from "../AI/EnemyAI"; | ||||||
| 
 | 
 | ||||||
| export default class BattleManager { | export default class BattleManager { | ||||||
|     players: Array<BattlerAI>; |     players: Array<BattlerAI>; | ||||||
|  | @ -23,7 +24,20 @@ export default class BattleManager { | ||||||
|                          |                          | ||||||
|                         //TODO - test shield, 
 |                         //TODO - test shield, 
 | ||||||
|                         //add checking for each onhit buff here
 |                         //add checking for each onhit buff here
 | ||||||
|                         (<PlayerController>this.players[0]).addShield(1); |                         let player = (<PlayerController>this.players[0]); | ||||||
|  | 
 | ||||||
|  |                         player.addShield(1); | ||||||
|  |                         //DOTS
 | ||||||
|  |                         if(player.hasBleed){ | ||||||
|  |                             (<EnemyAI>enemy).bleedCounter +=3; | ||||||
|  |                         } | ||||||
|  |                         if(player.hasPoison){ | ||||||
|  |                             (<EnemyAI>enemy).poisonCounter =5 ; | ||||||
|  |                         } | ||||||
|  |                         if(player.hasBurn){ | ||||||
|  |                             (<EnemyAI>enemy).burnCounter =5 ; | ||||||
|  |                         } | ||||||
|  |                          | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  | @ -154,8 +154,6 @@ export default class PlayerController extends StateMachineAI implements BattlerA | ||||||
| 
 | 
 | ||||||
|         this.CURRENT_BUFFS = {hp:0, atk:0, def:0, speed:0, range:0}; |         this.CURRENT_BUFFS = {hp:0, atk:0, def:0, speed:0, range:0}; | ||||||
|         |         | ||||||
|         //to test the buffs
 |  | ||||||
|         //this.addBuff( {type:BuffType.HEALTH, value:1} );
 |  | ||||||
|          |          | ||||||
|         //i frame timer
 |         //i frame timer
 | ||||||
|         PlayerController.invincibilityTimer = new Timer(2000); |         PlayerController.invincibilityTimer = new Timer(2000); | ||||||
|  | @ -170,6 +168,11 @@ export default class PlayerController extends StateMachineAI implements BattlerA | ||||||
|             PlayerController.buffPool.push(BuffCategory.HEALTH); |             PlayerController.buffPool.push(BuffCategory.HEALTH); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         //to test the buffs
 | ||||||
|  |         //this.addBuff( {type:BuffType.HEALTH, value:1} );
 | ||||||
|  |         this.addBuff({type:BuffType.BLEED, value:1, category:BuffCategory.DOT}); | ||||||
|  |          | ||||||
|  |          | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     initializePlatformer(): void { |     initializePlatformer(): void { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user