public override ISpell GenerateAttack() { int damage = this.Unit.AttackPoints; int energyCost = 0; if (this.Unit.HealthPoints <= 80) { damage += (this.Unit.HealthPoints * 2); } if (this.Unit.HealthPoints > 50) { energyCost = 15; } ISpell spell = new Cleave(damage, energyCost); if (this.Unit.EnergyPoints < spell.EnergyCost) { throw new NotEnoughEnergyException(this.Unit.Name + " does not have enough energy to cast Cleave"); } else { this.Unit.EnergyPoints -= spell.EnergyCost; } return(spell); }
/// <summary> /// Den här metoden sköter ability1 /// </summary> /// <returns></returns> protected override Ability CastAbility1() { Ability ability = new Cleave(TextureBank.mageSpellList[6], pos, LastDirection, this); Ability1CooldownTimer = ability.coolDownTime; return(ability); }
public override ISpell GenerateAttack() { var attack = new Cleave(); if (this.Unit.EnergyPoints >= attack.EnergyCost) { if (this.Unit.HealthPoints <= 80) { attack.Damage = this.Unit.AttackPoints + (this.Unit.HealthPoints * 2); } else { attack.Damage = this.Unit.AttackPoints; } if (this.Unit.HealthPoints > 50) { this.Unit.EnergyPoints -= attack.EnergyCost; } return(attack); } throw new NotEnoughEnergyException(string.Format(GlobalMessages.NotEnoughEnergy, this.Unit.Name, attack)); }
public Barbarian(Texture2D tex, Vector2 pos, int playerIndex, Controller controller) : base(tex, pos, playerIndex, controller) { HealthPoints = ValueBank.BarbarianHealth; MaxHealthPoints = HealthPoints; Ability1 = new Cleave(TextureBank.mageSpellList[6], pos, LastDirection, this); Ability2 = new Slash(TextureBank.mageSpellList[1], pos, LastDirection, this); Ability3 = new Charge(tex, pos, new Vector2(0, 0), this, false); }
public Warrior() { heroTexture = Engine.Engine.GetTexture("Hero/WarriorSprite"); Hero.loadSprite(); visible = true; heroRole = Classes.Warrior; inventory.addItem(new WarHammer(1, 1)); baseHealth = 300; healthPerLevel = 50; resetLevel(); resetHealth(); abilities[0] = new Cleave(); abilities[1] = new WhirlwindSlash(); Engine.Engine.Log(health.ToString()); }
public override ISpell GenerateAttack() { var attack = new Cleave(this.AttackDamage); if (this.Unit.HealthPoints > 50) { if (this.Unit.EnergyPoints < attack.EnergyCost) { throw new NotEnoughEnergyException(string.Format( GlobalMessages.NotEnoughEnergy, this.Unit.Name, attack.GetType().Name)); } this.Unit.EnergyPoints -= attack.EnergyCost; } return attack; }
public override ISpell GenerateAttack() { int energyCost = new Cleave(0).EnergyCost; if (this.Unit.EnergyPoints > energyCost) { if (Unit.HealthPoints > DefaultWarriorFreeEnergyHealthThreshold) { this.Unit.EnergyPoints -= energyCost; } if (this.Unit.HealthPoints > DefaultWarriorAddHealthToDamageThreshold) { return new Cleave(this.Unit.AttackPoints); } return new Cleave(this.Unit.AttackPoints + 2 * this.Unit.HealthPoints); } throw new NotEnoughEnergyException(string.Format(GlobalMessages.NotEnoughEnergy, this.Unit.Name, "Cleave")); }
public override ISpell GenerateAttack() { var attack = new Cleave(this.AttackDamage); if (this.Unit.HealthPoints > 50) { if (this.Unit.EnergyPoints < attack.EnergyCost) { throw new NotEnoughEnergyException(string.Format( GlobalMessages.NotEnoughEnergy, this.Unit.Name, attack.GetType().Name)); } this.Unit.EnergyPoints -= attack.EnergyCost; } return(attack); }
public Brawler() { heroTexture = Engine.Engine.GetTexture("Hero/Brawler"); Hero.loadSprite(); heroRole = Classes.Brawler; baseHealth = 300; healthPerLevel = 40; requiredBranchLevel = 30; resetLevel(); resetHealth(); Enemies.Enemy.UpdateTargets(this); Enemies.BossEnemy.UpdateBossTargets(this); abilities[0] = new Cleave(); abilities[1] = new WhirlwindSlash(); abilities[2] = new Slam(); abilities[3] = new DoubleSlash(); Engine.Engine.Log(health.ToString()); }
public override ISpell GenerateAttack() { int damage = base.Unit.AttackPoints; if (base.Unit.HealthPoints <= 80) { damage += 2 * base.Unit.HealthPoints; } ISpell spell = new Cleave(damage); if (base.Unit.HealthPoints > 50) { base.TakeEnergy(spell); } return(new Cleave(damage)); }
public Sentinel() { heroTexture = Engine.Engine.GetTexture("Hero/Sentinel"); Hero.loadSprite(); heroRole = Classes.Sentinel; baseHealth = 400; healthPerLevel = 65; requiredBranchLevel = 30; resetLevel(); resetHealth(); abilities[0] = new Cleave(); abilities[1] = new WhirlwindSlash(); abilities[2] = new ShieldBlock(); abilities[3] = new ShieldBash(); Engine.Engine.Log(health.ToString()); Enemies.Enemy.UpdateTargets(this); Enemies.BossEnemy.UpdateBossTargets(this); }
public ISpell GenerateAttack() { var damage = this.Unit.AttackPoints; if (this.Unit.HealthPoints <= 80) { damage += this.Unit.HealthPoints * 2; } var cleave = new Cleave(damage); if (this.Unit.HealthPoints > 50) { Validator.HasEnoughEnergy(this.Unit, cleave); Unit.EnergyPoints -= cleave.EnergyCost; } return cleave; }
public Juggernaut() { heroTexture = Engine.Engine.GetTexture("Hero/Juggernaut"); Hero.loadSprite(); heroRole = Classes.Juggernaut; baseHealth = 500; healthPerLevel = 75; requiredBranchLevel = int.MaxValue; resetLevel(); resetHealth(); abilities[0] = new Cleave(); abilities[1] = new WhirlwindSlash(); abilities[2] = new ShieldBlock(); abilities[3] = new ShieldBash(); abilities[4] = new Thornmail(); abilities[5] = new DivineShield(); Enemies.Enemy.UpdateTargets(this); Enemies.BossEnemy.UpdateBossTargets(this); }
public Berserker() { heroTexture = Engine.Engine.GetTexture("Hero/Berserker"); Hero.loadSprite(); heroRole = Classes.Berserker; baseHealth = 500; healthPerLevel = 40; requiredBranchLevel = int.MaxValue; resetLevel(); resetHealth(); abilities[0] = new Cleave(); abilities[1] = new WhirlwindSlash(); abilities[2] = new Slam(); abilities[3] = new DoubleSlash(); abilities[4] = new Rage(); abilities[5] = new Execute(); Enemies.Enemy.UpdateTargets(this); Enemies.BossEnemy.UpdateBossTargets(this); }
public override ISpell GenerateAttack() { var damage = this.Unit.AttackPoints; if (this.Unit.HealthPoints <= 80) { damage += 2 * this.Unit.HealthPoints; } var spell = new Cleave(damage); this.ValidateEnergyPoints(this.Unit, spell); if (this.Unit.HealthPoints > 50) { this.Unit.EnergyPoints -= spell.EnergyCost; } return spell; }
public override ISpell GenerateAttack() { ISpell currentSpell = new Cleave(this.SpellDamage); if (this.Unit.HealthPoints > AttackEnergyCostBreakPoint) { if (this.Unit.EnergyPoints < currentSpell.EnergyCost) { throw new NotEnoughEnergyException( string.Format( GlobalMessages.NotEnoughEnergy, this.Unit.Name, currentSpell.GetType().Name)); } this.Unit.EnergyPoints -= currentSpell.EnergyCost; } return(currentSpell); }
public ISpell GenerateAttack() { var damage = this.Unit.AttackPoints; if (this.Unit.HealthPoints <= 80) { damage += this.Unit.HealthPoints * 2; } var cleave = new Cleave(damage); if (this.Unit.HealthPoints > 50) { Validator.HasEnoughEnergy(this.Unit, cleave); Unit.EnergyPoints -= cleave.EnergyCost; } return(cleave); }
public override ISpell GenerateAttack() { var damage = this.Unit.AttackPoints; if (this.Unit.HealthPoints <= 80) { damage += 2 * this.Unit.HealthPoints; } var spell = new Cleave(damage); this.ValidateEnergyPoints(this.Unit, spell); if (this.Unit.HealthPoints > 50) { this.Unit.EnergyPoints -= spell.EnergyCost; } return(spell); }
public override ISpell GenerateAttack() { /////Cleave damage: Equals the warrior's attack points. /////If the warrior's health is equal or below 80, his health * 2 is added to the damage. //// If the warrior's health is greater than 50, it costs him energy - otherwise it doesn't. var damage = this.Unit.AttackPoints; if (this.Unit.HealthPoints <= 80) { damage += 2 * this.Unit.HealthPoints; } var spell = new Cleave(damage); this.ValidateEnergyPoints(this.Unit, spell); if (this.Unit.HealthPoints > 50) { this.Unit.EnergyPoints -= spell.EnergyCost; } return(spell); }
public override ISpell GenerateAttack() { int damage = this.Unit.AttackPoints; if (this.Unit.HealthPoints <= 80) { damage += this.Unit.HealthPoints * 2; } var cleave = new Cleave(damage); bool costsEnergy = true; if (this.Unit.HealthPoints < 50) { costsEnergy = false; } if (costsEnergy) { if (this.Unit.EnergyPoints < cleave.EnergyCost) { throw new NotEnoughEnergyException(string.Format( GlobalMessages.NotEnoughEnergy, this.Unit.Name, cleave.GetType().Name )); } this.Unit.EnergyPoints -= cleave.EnergyCost; return new Cleave(damage); } else { return new Cleave(damage, 0); } }
public override ISpell GenerateAttack() { int damege = this.Unit.AttackPoints; ISpell spell = null; if (this.Unit.HealthPoints <= 80) { spell = new Cleave((damege + (2 * this.Unit.HealthPoints))); } else { spell = new Cleave(damege); } if (this.Unit.HealthPoints > 50 && this.Unit.EnergyPoints >= spell.EnergyCost) { this.Unit.EnergyPoints -= spell.EnergyCost; return(spell); } else if (this.Unit.HealthPoints < 50) { return(spell); } throw new NotEnoughEnergyException(string.Format(Messages.NotEnoughEnergyException, this.Unit.Name, spell.GetType().Name)); }
// Use this for initialization public void Awake() { DontDestroyOnLoad(transform.gameObject); EquipmentFactory = new equipmentFactory(); if (Application.loadedLevelName == "setup") { previousScene = "setup"; Application.LoadLevel("OverworldBaseCamp"); } InfernalSpawn = (GameObject)Resources.Load("Enemy Prefabs/InfernalEnemy", typeof(GameObject)); #region ability initialization Abilities = new Dictionary<string, Ability>(); // Attack type, damage type, range, angle, cooldown, damagemod, resource cost #region player abilities #region spammed abilities Abilities["fireball"] = new Fireball(AttackType.PROJECTILE, DamageType.FIRE, 10.0f, 0.0f, 0.0f, 10.0f, 0f, "fireball", "Fireball", FireballExplosion); Abilities["shadowbolt"] = new Shadowbolt(AttackType.HONINGPROJECTILE, DamageType.SHADOW, 10.0f, 0.0f, 0.0f, 1.0f, 0f, "shadowbolt", "Shadowbolt", ShadowboltExplosion); Abilities["improvedshadowbolt"] = new ImprovedShadowbolt(AttackType.HONINGPROJECTILE, DamageType.SHADOW, 10.0f, 0.0f, 0.0f, 1.0f, 0f, "improvedshadowbolt", "Improved Shadowbolt", ShadowboltExplosion); Abilities["poisonbolt"] = new Poisonbolt(AttackType.HONINGPROJECTILE, DamageType.POISON, 10.0f, 0.0f, 0.0f, 10.0f, 0f, "poisonbolt", "poisonbolt", FireballExplosion); Abilities["bloodbolt"] = new Bloodbolt(AttackType.HONINGPROJECTILE, DamageType.PHYSICAL, 10.0f, 0.0f, 0.0f, 10.0f, 0f, "bloodbolt", "bloodbolt", FireballExplosion); Abilities["chaosbolt"] = new Chaosbolt(AttackType.HONINGPROJECTILE, DamageType.FIRE, 10.0f, 0.0f, 0.0f, 10.0f, 0f, "chaosbolt", "chaosbolt", ChaosboltExplosion); Abilities["chaosbarragebolt"] = new ChaosBarrageBolt(AttackType.HONINGPROJECTILE, DamageType.FIRE, 10.0f, 0.0f, 0.0f, 10.0f, 0f, "chaosbarragebolt", "chaosbarragebolt", ChaosboltExplosion); Abilities["icebolt"] = new IceBolt(AttackType.PROJECTILE, DamageType.WATER, 8f, 0f, 0.0f, 10.0f, 0f, "icebolt", "Ice Bolt", IceBoltParticles); Abilities["cleave"] = new Cleave(AttackType.MELEE, DamageType.PHYSICAL, 3.0f, 45.0f, 0.0f, 5.0f, 0f, "cleave", "Cleave", CleaveParticles); Abilities["arrow"] = new Arrow(AttackType.PROJECTILE, DamageType.PHYSICAL, 8.0f, 0.0f, 0.0f, 5.0f, 0f, "arrow", "Arrow", ArrowParticles); #endregion #region buff abilities Abilities["chaosbarrage"] = new ChaosBarrageAbility(AttackType.STATUS, DamageType.NONE, 10.0f, 0.0f, 0.0f, 0.0f, 0, "chaosbarrage", "Chaos Barrage", ChaosBarrageParticles); Abilities["fireballbarrage"] = new FireballBarrageAbility(AttackType.STATUS, DamageType.NONE, 10.0f, 0.0f, 30.0f, 0.0f, 100f, "fireballbarrage", "Fireball Barrage", FireballBarrageParticles); Abilities["rootability"] = new RootAbility(AttackType.STATUS, DamageType.NONE, 10.0f, 360.0f, 15.0f, 0.0f, 0f, "rootability", "Root Ability", null); #endregion Abilities["groundslam"] = new Hadouken(AttackType.PBAOE, DamageType.AIR, 5.0f, 360.0f, 10.0f, 10.0f, 25.0f, "groundslam", "Ground Slam", HadoukenParticles); Abilities["deathgrip"] = new Deathgrip(AttackType.PBAOE, DamageType.SHADOW, 5.0f, 360.0f, 0.0f, 15.0f, 25.0f, "deathgrip", "AoE Deathgrip", DeathgripParticles); Abilities["fusrodah"] = new Fusrodah(AttackType.PBAOE, DamageType.AIR, 5.0f, 45.0f, 5.0f, 10.0f, 20.0f, "fusrodah", "Fus Roh Dah", FusRoDahParticles); Abilities["flamestrike"] = new Flamestrike(AttackType.PBAOE, DamageType.FIRE, 5.0f, 360.0f, 5.0f, 1000.0f, 25.0f, "flamestrike", "Flamestrike", FlamestrikeParticles); Abilities["bladewaltz"] = new BladeWaltz(AttackType.PBAOE, DamageType.PHYSICAL, 5.0f, 360.0f, 30.0f, 0f, 50.0f, "bladewaltz", "Blade Waltz", BladeWaltzParticles); Abilities["erenwaltz"] = new ErenWaltz(AttackType.PBAOE, DamageType.PHYSICAL, 5.0f, 360.0f, 0.0f, 5.0f, 0f, "erenwaltz", "Eren Waltz", BladeWaltzParticles); Abilities["firemine"] = new FireMine(AttackType.PROJECTILE, DamageType.FIRE, 5.0f, 360.0f, 4.0f, 200.0f, 10f, "firemine", "Fire Mine", FiremineParticles); Abilities["GETOVERHERE"] = new GETOVERHERE(AttackType.PROJECTILE, DamageType.SHADOW, 4.0f, 0.0f, 0.0f, 0.1f, 10f, "GETOVERHERE", "Shadow Pull", GETOVERHEREParticles); Abilities["normalmine"] = new NormalMine(AttackType.PROJECTILE, DamageType.PHYSICAL, 5.0f, 360.0f, 4.0f, 1.0f, 10f, "normalmine", "Mine", MineParticles); Abilities["blinkstrike"] = new BlinkStrike(AttackType.PROJECTILE, DamageType.SHADOW, 4.0f, 1.0f, 0.0f, 5.0f, 10f, "blinkstrike", "Blink Strike", BlinkStrikeExplosion); Abilities["blink"] = new Blink(AttackType.GROUNDTARGET, DamageType.NONE, 5.0f, 0.0f, 7.0f, 0.0f, 25f, "blink", "Blink", BlinkParticles); Abilities["shockmine"] = new ShockMine(AttackType.PROJECTILE, DamageType.PHYSICAL, 7.0f, 360.0f, 3.0f, 30.0f, 5f, "shockmine", "Shock Mine", ShockMineProjectile); Abilities["aoefreeze"] = new AOEfreeze(AttackType.PBAOE, DamageType.WATER, 5.0f, 360f, 15f, 1f, 30f, "aoefreeze", "Flashfreeze", AOEFreezeParticles); Abilities["onhitnormal"] = new OnHitNormal(AttackType.MELEE, DamageType.PHYSICAL, 0.0f, 0.0f, 0.0f, 0.0f, 0f, "onhitnormal", "On Hit Normal", OnHitNormalParticles); Abilities["onhitsworddrop"] = new OnHitSwordDrop(AttackType.MELEE, DamageType.PHYSICAL, 0f, 0f, 0f, 0f, 0f, "onhitsworddrop", "Sword Drop OnHit", OnHitSwordDropObject); Abilities["fireballturret"] = new FireballTurret(AttackType.PROJECTILE, DamageType.NONE, 10.0f, 360.0f, 2.0f, 0.0f, 40f, "fireballturret", "Fireball Turret", FireballTurretParticles); Abilities["fireballturretfireball"] = new FireballTurretFireball(AttackType.PROJECTILE, DamageType.FIRE, 10.0f, 0.0f, 0.0f, 5.0f, 0f, "fireballturretfireball", "Fireball Turret Fireball", FireballExplosion); Abilities["frozenorb"] = new FrozenOrb(AttackType.PROJECTILE, DamageType.NONE, 5.0f, 360.0f, 8.0f, 0.0f, 30f, "frozenorb", "Frozen Orb", FrozenOrbParticles); Abilities["frozenorbicebolt"] = new IceBolt(AttackType.PROJECTILE, DamageType.WATER, 8f, 0f, 0.0f, 0f, 0f, "frozenorbicebolt", "Frozen Orb Ice Bolt", IceBoltParticles); Abilities["boomerangblade"] = new BoomerangBlade(AttackType.PROJECTILE, DamageType.PHYSICAL, 5f, 0f, 4.0f, 0f, 20f, "boomerangblade", "Boomerang Blade", BoomerangBladeExplosion); Abilities["boomerangbladereturn"] = new BoomerangBladeReturn(AttackType.HONINGPROJECTILE, DamageType.PHYSICAL, 0.0f, 0.0f, 0.0f, 0.0f, 0f, "boomerangbladereturn", "Boomerang Blade(returning)", BoomerangBladeExplosion); Abilities["axethrow"] = new AxeThrow(AttackType.PROJECTILE, DamageType.PHYSICAL, 5.0f, 0.0f, 2.0f, 0.0f, 3f, "axethrow", "Axe Throw", AxeThrowExplosion); Abilities["frostnova"] = new FrostNova(AttackType.PBAOE, DamageType.WATER, 7f, 360f, 20f, 0f, 60f, "frostnova", "Frost Nova", IceBoltParticles); Abilities["shieldbreaker"] = new ShieldBreaker(AttackType.PBAOE, DamageType.PHYSICAL, 10f, 15f, 0.0f, 5f, 20f, "shieldbreaker", "Shieldbreaker", ShieldBreakerParticles); Abilities["dropdasteel"] = new DropDaSteel(AttackType.STATUS, DamageType.NONE, 0f, 0f, 32f, 0f, 0f, "dropdasteel", "Drop Da Steel", dropdasteelparticles); Abilities["dervishdeathgrip"] = new Deathgrip(AttackType.PBAOE, DamageType.NONE, 3f, 360f, 0f, 0f, 0f, "dervishdeathgrip", "Dervish Deathgrip", DeathgripParticles); Abilities["infernalfireball"] = new InfernalFireball(AttackType.HONINGPROJECTILE, DamageType.FIRE, 5.0f, 360.0f, 5.0f, 30.0f, 0f, "infernalfireball", "Infernal Fireball", InfernalFireballExplosion); Abilities["whirlwind"] = new Whirlwind(AttackType.GROUNDTARGET, DamageType.PHYSICAL, 3.0f, 360.0f, 0.0f, 10.0f, 0f, "whirlwind", "Whirlwind", OnHitNormalParticles); Abilities["dervish"] = new Dervish(AttackType.GROUNDTARGET, DamageType.PHYSICAL, 5f, 360f, 0.0f, 10f, 100f, "dervish", "Dervish", OnHitNormalParticles); Abilities["bossinfernalfireball"] = new BossInfernalFireball(AttackType.HONINGPROJECTILE, DamageType.FIRE, 5.0f, 360.0f, 5.0f, 30.0f, 0f, "bossinfernalfireball", "Boss Infernal Fireball", BossInfernalFireballExplosion); //Abilities["healorb"] = new HealOrb(AttackType.PROJECTILE, DamageType.NONE, 5.0f, 360.0f, 0.0f, 0.0f, "healorb", "Heal Orb", HealOrbExplosion); Abilities["deathanddecay"] = new DeathAndDecay(AttackType.GROUNDTARGET, DamageType.SHADOW, 5.0f, 360.0f, 0.0f, 1.0f, 0f, "deathanddecay", "Death and Decay", DeathAndDecaySpawn); Abilities["shadowfury"] = new Shadowfury(AttackType.GROUNDTARGET, DamageType.SHADOW, 3.0f, 360.0f, 0.0f, 1.0f, 0f, "shadowfury", "Shadowfury", ShadowfurySpawn); Abilities["shadowtrap"] = new Shadowtrap(AttackType.GROUNDTARGET, DamageType.SHADOW, 3.0f, 360.0f, 0.0f, 0.0f, 0f, "shadowtrap", "Shadowtrap", ShadowtrapSpawn); #endregion #region enemy abilities Abilities["enemyfireball"] = new Fireball(AttackType.PROJECTILE, DamageType.FIRE, 10.0f, 0.0f, 4f, 10.0f, 0f, "enemyfireball", "Enemy Fireball", FireballExplosion); Abilities["enemycleaveslow"] = new Cleave(AttackType.MELEE, DamageType.PHYSICAL, 3.0f, 45.0f, 3.0f, 5.0f, 0f, "cleave", "Cleave", CleaveParticles); Abilities["enemycleavenormal"] = new Cleave(AttackType.MELEE, DamageType.PHYSICAL, 3.0f, 45.0f, 2f, 2.5f, 0f, "cleave", "Cleave", CleaveParticles); Abilities["enemycleavefast"] = new Cleave(AttackType.MELEE, DamageType.PHYSICAL, 3.0f, 45.0f, 1.0f, 1.0f, 0f, "cleave", "Cleave", CleaveParticles); Abilities["enemydeathgrip"] = new Deathgrip(AttackType.PBAOE, DamageType.SHADOW, 10.0f, 360.0f, 10.0f, 0.0f, 0.0f, "enemydeathgrip", "Enemy Deathgrip", DeathgripParticles); Abilities["bossfireball"] = new BossFireball(AttackType.PROJECTILE, DamageType.FIRE, 10.0f, 0.0f, 5.0f, 10.0f, 0f, "bossfireball", "Boss Fireball", BossInfernalFireballExplosion); Abilities["bossflamestrike"] = new BossFlamestrike(AttackType.PBAOE, DamageType.FIRE, 10.0f, 360.0f, 10.0f, 10.0f, 0.0f, "bossflamestrike", "Boss Flamestrike", BossFlamestrikeParticles); Abilities["enemywhirlwind"] = new Whirlwind(AttackType.GROUNDTARGET, DamageType.PHYSICAL, 3.0f, 360.0f, 8.0f, 5.0f, 0f, "enemywhirlwind", "Enemy Whirlwind", OnHitNormalParticles); #endregion #endregion }