public override void updateToggle(int heroLevel, HeroClasses.Hero hero) { if (createdLevel < hero.GetArmorRating() / 5) { hero.setReflectedDamage(hero.GetArmorRating() / 5); createdLevel = hero.GetArmorRating(); Engine.Engine.Log("Armor to damage bonus: " + hero.GetArmorRating() / 5); } }
public override void updateToggle(int heroLevel, HeroClasses.Hero hero) { if (createdLevel < heroLevel && isActive) { hero.damageBoost -= increase + createdLevel; hero.damageBoost += increase + heroLevel; createdLevel = heroLevel; } }
public override void updateToggle(int heroLevel, HeroClasses.Hero hero) { if (createdLevel < heroLevel && isActive) { hero.setArmorBoost(armorBoost + (int)(heroLevel * 2)); hero.damageBoost += (int)(createdLevel * 1.5); hero.damageBoost -= (int)(heroLevel); createdLevel = heroLevel; } }
public void updateAOEPosition(Level mapLevel, IntVec start, HeroClasses.Hero hero) { if (turnCount > 0) { viewCastRange(mapLevel, start); addCastingSquares(radiusSquares[0]); finishCastandDealDamage(HeroClasses.Hero.level, hero.GetEquipment().getTotalDamageIncrease(), mapLevel, hero); willBeCast = true; wasJustCast = false; } }
protected override void finishCast(int damage, Mapping.Level mapLevel, HeroClasses.Hero hero) { for (int i = 0; i < castSquares.Length; i++) { GameCharacter test = (GameCharacter)mapLevel.CharacterEntities.FindEntity(castSquares[i]); if (test != null) { test.TakeDamage(damage, hero); } castSquares[i] = new IntVec(0, 0); } }
protected override void finishCast(int damage, Mapping.Level mapLevel, HeroClasses.Hero hero) { for (int i = 0; i < castSquares.Length; i++) { GameCharacter test = (GameCharacter)mapLevel.CharacterEntities.FindEntity(castSquares[i]); if (test != null) { Engine.Engine.AddVisualAttack(hero, test, "Hero/FireballSpell", .25f, 1.0f, .03f); Audio.playSound("Fireball", .25f); test.TakeDamage(damage, hero); } castSquares[i] = new IntVec(0, 0); } }
protected override void finishCast(int damage, Mapping.Level mapLevel, HeroClasses.Hero hero) { for (int i = 0; i < castSquares.Length; i++) { GameCharacter test = (GameCharacter)mapLevel.CharacterEntities.FindEntity(castSquares[i]); if (test != null) { Engine.Engine.AddVisualAttack(test, "Hero/Execute", .5f, 1.5f, .05f); test.TakeDamage(damage, hero); cooldown = getCooldown(test); } castSquares[i] = new IntVec(0, 0); } }
protected override void finishCast(int damage, Mapping.Level mapLevel, HeroClasses.Hero hero) { for (int i = 0; i < castSquares.Length; i++) { GameCharacter test = (GameCharacter)mapLevel.CharacterEntities.FindEntity(castSquares[i]); if (test != null) { Audio.playSound("DaggerStab"); Engine.Engine.AddVisualAttack(test, "Hero/DaggerSlash", .5f, 1.5f, .05f); test.TakeDamage(damage, hero); } castSquares[i] = new IntVec(0, 0); } }
protected override void finishCast(int damage, Mapping.Level mapLevel, HeroClasses.Hero hero) { for (int i = 0; i < castSquares.Length; i++) { GameCharacter test = (GameCharacter)mapLevel.CharacterEntities.FindEntity(castSquares[i]); if (test != null) { Audio.playSound("Arcane"); Engine.Engine.AddVisualAttack(hero, test, "Hero/Overload", 1.0f, 1.0f, 0); test.DealElementalDamage(Enums.ElementAttributes.Arcane, 7, HeroClasses.Hero.level / 2); test.TakeDamage(damage, hero); } castSquares[i] = new IntVec(0, 0); } }
protected override void finishCast(int damage, Mapping.Level mapLevel, HeroClasses.Hero hero) { for (int i = 0; i < castSquares.Length; i++) { GameCharacter test = (GameCharacter)mapLevel.CharacterEntities.FindEntity(castSquares[i]); if (test != null) { Engine.Engine.AddVisualAttack(test, "Hero/DoubleSlash", .25f, 2.0f, .15f); Audio.playSound("Slash", .25f); test.TakeDamage(damage, hero); if (mapLevel.CharacterEntities.FindPosition(test) != null) { test.TakeDamage(damage, hero); } } castSquares[i] = new IntVec(0, 0); } }
protected override void finishCast(int damage, Mapping.Level mapLevel, HeroClasses.Hero hero) { for (int i = 0; i < castSquares.Length; i++) { GameCharacter test = (GameCharacter)mapLevel.CharacterEntities.FindEntity(castSquares[i]); if (test != null) { Audio.playSound("Mugging"); test.TakeDamage(damage, hero); Items.Item heroItem = null; while (heroItem == null || heroItem.ItemType == Enums.ITypes.Consumable) { heroItem = Items.Item.randomItem(mapLevel.DungeonLevel, HeroClasses.Hero.level - 3); } hero.GetInventory().addItem(heroItem); } castSquares[i] = new IntVec(0, 0); } }
public override void finishCastandDealDamage(int heroLevel, int heroDamage, Mapping.Level mapLevel, HeroClasses.Hero hero) { heroEffect(hero); cooldown = 6; }
protected void heroEffect(HeroClasses.Hero hero) { int boost = (HeroClasses.Hero.level / 10) * (Math.Abs(hero.GetArmorRating() - hero.getArmorBoost()) + 1); hero.ApplyArmorBoost(boost, 1); }
abstract protected void finishCast(int damage, Level mapLevel, HeroClasses.Hero hero);
public static void Start(Game1 injectedGame) { game = injectedGame; hero = new HeroClasses.Warrior(); GenerateLevel(); windowSizeInTiles = new IntVec(game.Width / CELLWIDTH, game.Height / CELLWIDTH); cameraPosition = currentLevel.CharacterEntities.FindPosition(hero); modifiedCameraPosition.X = cameraPosition.X - (windowSizeInTiles.X / 2); modifiedCameraPosition.Y = cameraPosition.Y - (windowSizeInTiles.Y / 2); LogPosition = new Vector2(12, 12); // = new Vector2(game.Width - 48, game.Height - 48); InventoryPosition = new Vector2(game.Width - 5 * (CELLWIDTH), game.Height - 4 * (CELLWIDTH)); InvButtonPosition = new Vector2(game.Width - CELLWIDTH, game.Height - CELLWIDTH); abilityPosition = new Vector2(game.Width / 2, game.Height - CELLWIDTH); charSheetPosition = new Vector2(0, 60); InventorySize = new Vector2(4 * CELLWIDTH, 4 * CELLWIDTH); weaponEquipPosition = new Vector2(0, game.Height - 2 * CELLWIDTH - 20); armorEquipPosition = new Vector2(0, game.Height - CELLWIDTH); game.IsMouseVisible = true; LoadMainMenu(); saveButton = new UIButton(new Vector2(game.Width / 2 - 150, game.Height / 2), true, "UI/Save", "Save and quit"); continueButton = new UIButton(new Vector2(game.Width / 2 + 150, game.Height / 2), true, "UI/Continue", "Continue"); headSlot = new UIButton(armorEquipPosition, false, "UI/HelmOverlay", "Helm"); chestSlot = new UIButton(new Vector2(armorEquipPosition.X + CELLWIDTH, armorEquipPosition.Y), false, "UI/ChestOverlay", "Chest"); legSlot = new UIButton(new Vector2(armorEquipPosition.X + 2 * (CELLWIDTH), armorEquipPosition.Y), false, "UI/LegsOverlay", "Legs"); ringSlot1 = new UIButton(new Vector2(armorEquipPosition.X + 3 * (CELLWIDTH), armorEquipPosition.Y), false, "UI/RingOverlay", "Ring"); ringSlot2 = new UIButton(new Vector2(armorEquipPosition.X + 4 * (CELLWIDTH), armorEquipPosition.Y), false, "UI/RingOverlay", "Ring"); neckSlot = new UIButton(new Vector2(armorEquipPosition.X + 5 * (CELLWIDTH), armorEquipPosition.Y), false, "UI/NeckOverlay", "Neck"); weaponSlot1 = new UIButton(new Vector2(weaponEquipPosition.X, weaponEquipPosition.Y), false, "UI/InvSlot", "Left"); weaponSlot2 = new UIButton(new Vector2(weaponEquipPosition.X + CELLWIDTH, weaponEquipPosition.Y), false, "UI/InvSlot", "Right"); texState.AddressU = TextureAddressMode.Clamp; texState.AddressV = TextureAddressMode.Clamp; texState.AddressW = TextureAddressMode.Clamp; texState.Filter = TextureFilter.Linear; //StartGame(); }
public override void updateToggle(int heroLevel, HeroClasses.Hero hero) { }
public override void finishCastandDealDamage(int heroLevel, int heroDamage, Mapping.Level mapLevel, HeroClasses.Hero hero) { if (!isActive) { if (HeroClasses.Hero.Element != null && !HeroClasses.Hero.Element.Contains(Enums.ElementAttributes.Fire)) { HeroClasses.Hero.Element.Add(Enums.ElementAttributes.Arcane); added = true; } isActive = true; wasJustCast = true; } else if (isActive) { if (added) { HeroClasses.Hero.Element.Remove(Enums.ElementAttributes.Arcane); added = false; } wasJustCast = true; isActive = false; } cooldown = 0; }
public abstract void updateToggle(int heroLevel, HeroClasses.Hero hero);
public abstract void toggledAttackEffects(HeroClasses.Hero hero);
public override void finishCastandDealDamage(int heroLevel, int heroDamage, Mapping.Level mapLevel, HeroClasses.Hero hero) { Audio.playSound("Smoke", 1.0f); hero.setInvisibility(10 + heroLevel / 5); cooldown = 20 + heroLevel / 5; }
public override void finishCastandDealDamage(int heroLevel, int heroDamage, Mapping.Level mapLevel, HeroClasses.Hero hero) { hero.setReflectedDamage(hero.GetArmorRating() / 5); createdLevel = hero.GetArmorRating(); }
public override void finishCastandDealDamage(int heroLevel, int heroDamage, Level mapLevel, HeroClasses.Hero hero) { Audio.playSound("WhirlwindSlash"); base.finishCastandDealDamage(heroLevel, heroDamage, mapLevel, hero); }
public override void finishCastandDealDamage(int heroLevel, int heroDamage, Level mapLevel, HeroClasses.Hero hero) { int damage = calculateDamage(heroLevel, heroDamage); cooldown = abilityCooldown; wasJustCast = true; for (int i = 0; i < castSquares.Length; i++) { Audio.playSound("HammerSmash"); Engine.Engine.AddVisualAttack(castSquares[i], "Hero/hammerSmash", .5f, 1.0f, .05f); GameCharacter enemy = (GameCharacter)mapLevel.CharacterEntities.FindEntity(castSquares[i]); if (enemy != null) { enemy.TakeDamage(damage, hero); } castSquares[i] = new IntVec(0, 0); } isActuallyFilled = false; }
public override void finishCastandDealDamage(int heroLevel, int heroDamage, Mapping.Level mapLevel, HeroClasses.Hero hero) { for (int i = 0; i < castSquares.Length; i++) { if (mapLevel.Move(hero, castSquares[0], true)) { Audio.playSound("whoosh", 1.0f); cooldown = abilityCooldown; wasJustCast = true; } castSquares[i] = new IntVec(0, 0); } }
public static void LoadGame(string filename) { IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read); SaveGameData gd = (SaveGameData)formatter.Deserialize(stream); stream.Close(); File.Delete(filename); //Create a new class of the hero just to set the static texture. GameCharacter temp; switch (gd.heroRole) { case Enums.Classes.Mage: temp = new HeroClasses.Mage(); break; case Enums.Classes.Warrior: temp = new HeroClasses.Warrior(); break; case Enums.Classes.Rogue: temp = new HeroClasses.Rogue(); break; case Enums.Classes.Brawler: temp = new HeroClasses.Brawler(); break; case Enums.Classes.Magus: temp = new HeroClasses.Magus(); break; case Enums.Classes.Duelist: temp = new HeroClasses.Duelist(); break; case Enums.Classes.Sentinel: temp = new HeroClasses.Sentinel(); break; case Enums.Classes.Sorcerer: temp = new HeroClasses.Sorcerer(); break; case Enums.Classes.Ranger: temp = new HeroClasses.Ranger(); break; case Enums.Classes.Marksman: temp = new HeroClasses.Marksman(); break; case Enums.Classes.Berserker: temp = new HeroClasses.Berserker(); break; case Enums.Classes.Juggernaut: temp = new HeroClasses.Juggernaut(); break; case Enums.Classes.SpellBlade: temp = new HeroClasses.SpellBlade(); break; case Enums.Classes.SpellWeaver: temp = new HeroClasses.Spellweaver(); break; case Enums.Classes.Assassin: temp = new HeroClasses.Assassin(); break; } currentSaveSlot = gd.saveSlot; hero = gd.character; HeroClasses.Hero.level = gd.level; HeroClasses.Hero.jarBarAmount = gd.jarBarAmount; HeroClasses.Hero.MaxJarBarAmount = gd.jarBarMax; HeroClasses.Hero.heroRole = gd.heroRole; UpdateAbilities(); GeneratedLevel nlevel = new GeneratedLevel(gd.seed, gd.levelComplexity, gd.dungeonLevel); currentLevel = nlevel.RetrieveLevel(); currentLevel.CharacterEntities.Add(hero, currentLevel.GetStartPoint()); showSaveSlotSelection = false; mainMenuOpen = false; gameStarted = true; }
public override void toggledAttackEffects(HeroClasses.Hero hero) { }
public override void finishCastandDealDamage(int heroLevel, int heroDamage, Level mapLevel, HeroClasses.Hero hero) { damage = calculateDamage(heroLevel, heroDamage); cooldown = abilityCooldown; wasJustCast = true; finishCast(damage, mapLevel, hero); isFinished = false; }
public override void finishCastandDealDamage(int heroLevel, int heroDamage, Mapping.Level mapLevel, HeroClasses.Hero hero) { hero.setParryCount(1); cooldown = 8; }
public static void Update(GameTime gameTime) { MouseController.Update(); if (gameStarted) { if (heroPos == null) { heroPos = currentLevel.CharacterEntities.FindPosition(hero); } for (int i = 0; i < xpList.Count; i++) { if (xpList[i].update()) { xpList.RemoveAt(i); drawXP++; } } for (int i = 0; i < vattacks.Count; i++) { if (vattacks[i].update()) { vattacks.RemoveAt(i); } } for (int i = 0; i < splashes.Count(); i++) { if (splashes[i].update()) { splashes.RemoveAt(i); } } if (!GameCommands()) { currentLevel.testUpdate(); //Game turns //hero.TakeTurn(currentLevel); if (charIndex >= currentLevel.CharacterEntities.Entities().Count<GameCharacter>()) { charIndex = 0; } while (currentLevel.CharacterEntities.Entities().ElementAt<GameCharacter>(charIndex) != hero) { if (hero != null) { heroPos = currentLevel.CharacterEntities.FindPosition(hero); } if (charIndex < currentLevel.CharacterEntities.Entities().Count<GameCharacter>() && heroPos != null) { IntVec enemyPosition = currentLevel.CharacterEntities.FindPosition(currentLevel.CharacterEntities.Entities().ElementAt<GameCharacter>(charIndex)); if (enemyPosition.X > heroPos.X - AIDist && enemyPosition.X < heroPos.X + AIDist && enemyPosition.Y > heroPos.Y - AIDist && enemyPosition.Y < heroPos.Y + AIDist && HeroClasses.Hero.visible) { if (currentLevel.CharacterEntities.Entities().ElementAt<GameCharacter>(charIndex).TakeTurn(currentLevel)) { currentLevel.InvalidateCache(); charIndex++; } } else { charIndex++; } } if (charIndex >= currentLevel.CharacterEntities.Entities().Count<GameCharacter>()) { charIndex = 0; } } charIndex += hero.TakeTurn(currentLevel) ? 1 : 0; if (hero.hasReachedBranchLevel()) { tempPosition = currentLevel.CharacterEntities.FindPosition(hero); tempEquip = hero.GetEquipment(); tempInventory = hero.GetInventory(); currentLevel.CharacterEntities.Remove(hero); if (HeroClasses.Hero.level < 20) { gameStarted = false; showCharSelection = true; if (HeroClasses.Hero.heroRole == Enums.Classes.Warrior) { selection = new CharButton[] { bralwerButton, sentinelButton }; } else if (HeroClasses.Hero.heroRole == Enums.Classes.Mage) { selection = new CharButton[] { sorcererButton, magusButton }; } else if (HeroClasses.Hero.heroRole == Enums.Classes.Rogue) { selection = new CharButton[] { duelistButton, rangerButton }; } } else { //new class, not branching... if (HeroClasses.Hero.heroRole == Enums.Classes.Duelist) { hero = new HeroClasses.Assassin(); UpdateAbilities(); Log("You are now an Assasin."); splashes.Add(new Splash(upAssassin, new Vector2(game.Width / 2, game.Height / 2), 3, .05f)); drawXP = hero.getExperience(); gameStarted = true; hero.ObtainItems(tempInventory, tempEquip); hero.obtainStartingGear(currentLevel); currentLevel.CharacterEntities.Add(hero, tempPosition); } if (HeroClasses.Hero.heroRole == Enums.Classes.Brawler) { hero = new HeroClasses.Berserker(); UpdateAbilities(); Log("You are now a Berserker."); splashes.Add(new Splash(upBerserker, new Vector2(game.Width / 2, game.Height / 2), 3, .05f)); drawXP = hero.getExperience(); gameStarted = true; hero.ObtainItems(tempInventory, tempEquip); hero.obtainStartingGear(currentLevel); currentLevel.CharacterEntities.Add(hero, tempPosition); } if (HeroClasses.Hero.heroRole == Enums.Classes.Sentinel) { hero = new HeroClasses.Juggernaut(); UpdateAbilities(); Log("You are now a Juggernaut."); splashes.Add(new Splash(upJuggernaut, new Vector2(game.Width / 2, game.Height / 2), 3, .05f)); drawXP = hero.getExperience(); gameStarted = true; hero.ObtainItems(tempInventory, tempEquip); hero.obtainStartingGear(currentLevel); currentLevel.CharacterEntities.Add(hero, tempPosition); } if (HeroClasses.Hero.heroRole == Enums.Classes.Sorcerer) { hero = new HeroClasses.Spellweaver(); UpdateAbilities(); Log("You are now a SpellWeaver."); splashes.Add(new Splash(upSpellweaver, new Vector2(game.Width / 2, game.Height / 2), 3, .05f)); drawXP = hero.getExperience(); gameStarted = true; hero.ObtainItems(tempInventory, tempEquip); hero.obtainStartingGear(currentLevel); currentLevel.CharacterEntities.Add(hero, tempPosition); } if (HeroClasses.Hero.heroRole == Enums.Classes.Magus) { hero = new HeroClasses.SpellBlade(); UpdateAbilities(); Log("You are now a SpellBlade."); splashes.Add(new Splash(upSpellblade, new Vector2(game.Width / 2, game.Height / 2), 3, .05f)); drawXP = hero.getExperience(); gameStarted = true; hero.ObtainItems(tempInventory, tempEquip); hero.obtainStartingGear(currentLevel); currentLevel.CharacterEntities.Add(hero, tempPosition); } if (HeroClasses.Hero.heroRole == Enums.Classes.Ranger) { hero = new HeroClasses.Marksman(); UpdateAbilities(); Log("You are now a Marksman."); splashes.Add(new Splash(upMarksman, new Vector2(game.Width / 2, game.Height / 2), 3, .05f)); drawXP = hero.getExperience(); gameStarted = true; hero.ObtainItems(tempInventory, tempEquip); hero.obtainStartingGear(currentLevel); currentLevel.CharacterEntities.Add(hero, tempPosition); } } } if (currentLevel.CharacterEntities.FindPosition(hero) != null) { cameraPosition = currentLevel.CharacterEntities.FindPosition(hero); modifiedCameraPosition.X = cameraPosition.X - (windowSizeInTiles.X / 2); modifiedCameraPosition.Y = cameraPosition.Y - (windowSizeInTiles.Y / 2); currentLevel.InvalidateCache(); } } } else { if (mainMenuOpen) { if (mageButton.isClicked()) { hero = new HeroClasses.Mage(); HeroClasses.Hero.level = 5; UpdateAbilities(); mainMenuOpen = false; showSaveSlotSelection = true; } if (warriorButton.isClicked()) { hero = new HeroClasses.Warrior(); HeroClasses.Hero.level = 5; UpdateAbilities(); mainMenuOpen = false; showSaveSlotSelection = true; } if (rogueButton.isClicked()) { hero = new HeroClasses.Rogue(); HeroClasses.Hero.level = 5; UpdateAbilities(); mainMenuOpen = false; showSaveSlotSelection = true; } int saveSlot = saveSlotClicked(); if (saveSlot != -1) { LoadFromSlot(saveSlot); } if (quitButton.isClicked()) { System.Environment.Exit(0); } } else if (savePromptOpen) { if (saveButton.isClicked()) { SaveToSlot(currentSaveSlot); System.Environment.Exit(0); } if (continueButton.isClicked()) { savePromptOpen = false; gameStarted = true; } } else if (showSaveSlotSelection) { int saveClicked = saveSlotClicked(); if (saveClicked != -1) { currentSaveSlot = saveClicked; showSaveSlotSelection = false; StartGame(); } } else if (showEscMenu) { if (escQuit.isClicked()) { Environment.Exit(0); } if (escContinue.isClicked()) { showEscMenu = false; gameStarted = true; } if (escMainMenu.isClicked()) { showEscMenu = false; xpList.Clear(); currentDungeonLevel = 0; LoadSaveSlots(); vattacks.Clear(); mainMenuOpen = true; } } else if (showCharSelection) { if (selection.Contains(bralwerButton) && bralwerButton.isClicked()) { hero = new HeroClasses.Brawler(); UpdateAbilities(); Log("You are now a brawler."); showCharSelection = false; gameStarted = true; drawXP = hero.getExperience(); hero.ObtainItems(tempInventory, tempEquip); hero.obtainStartingGear(currentLevel); currentLevel.CharacterEntities.Add(hero, tempPosition); } if (selection.Contains(duelistButton) && duelistButton.isClicked()) { hero = new HeroClasses.Duelist(); UpdateAbilities(); Log("You are now a duelist."); showCharSelection = false; drawXP = hero.getExperience(); gameStarted = true; hero.ObtainItems(tempInventory, tempEquip); hero.obtainStartingGear(currentLevel); currentLevel.CharacterEntities.Add(hero, tempPosition); } if (selection.Contains(sorcererButton) && sorcererButton.isClicked()) { hero = new HeroClasses.Sorcerer(); UpdateAbilities(); Log("You are now a Sorcerer."); showCharSelection = false; drawXP = hero.getExperience(); gameStarted = true; hero.ObtainItems(tempInventory, tempEquip); hero.obtainStartingGear(currentLevel); currentLevel.CharacterEntities.Add(hero, tempPosition); } if (selection.Contains(magusButton) && magusButton.isClicked()) { hero = new HeroClasses.Magus(); UpdateAbilities(); Log("You are now a Magus."); showCharSelection = false; gameStarted = true; drawXP = hero.getExperience(); hero.ObtainItems(tempInventory, tempEquip); hero.obtainStartingGear(currentLevel); currentLevel.CharacterEntities.Add(hero, tempPosition); } if (selection.Contains(sentinelButton) && sentinelButton.isClicked()) { hero = new HeroClasses.Sentinel(); UpdateAbilities(); Log("You are now a Sentinel."); showCharSelection = false; gameStarted = true; drawXP = hero.getExperience(); hero.ObtainItems(tempInventory, tempEquip); hero.obtainStartingGear(currentLevel); currentLevel.CharacterEntities.Add(hero, tempPosition); } if (selection.Contains(rangerButton) && rangerButton.isClicked()) { hero = new HeroClasses.Ranger(); UpdateAbilities(); Log("You are now a Ranger."); showCharSelection = false; drawXP = hero.getExperience(); gameStarted = true; hero.ObtainItems(tempInventory, tempEquip); hero.obtainStartingGear(currentLevel); currentLevel.CharacterEntities.Add(hero, tempPosition); } } else if (showDeathScreen) { if (quitDeathButton.isClicked()) { Environment.Exit(0); } if (restartButton.isClicked()) { showDeathScreen = false; xpList.Clear(); currentDungeonLevel = 0; LoadSaveSlots(); vattacks.Clear(); mainMenuOpen = true; } } } if (gameStarted) { Audio.update(); } if (hero != null && !hero.isAlive() && gameStarted) { gameStarted = false; showDeathScreen = true; } }
public override void finishCastandDealDamage(int heroLevel, int heroDamage, Level mapLevel, HeroClasses.Hero hero) { int damage = calculateDamage(heroLevel, heroDamage); cooldown = abilityCooldown; wasJustCast = true; willBeCast = false; for (int i = 0; i < castSquares.Length; i++) { drawVisualEffect(castSquares[i]); GameCharacter enemy = (GameCharacter)mapLevel.CharacterEntities.FindEntity(castSquares[i]); if (enemy != null) { enemy.DealElementalDamage(Enums.ElementAttributes.Arcane, 7, HeroClasses.Hero.level / 2); enemy.TakeDamage(damage, hero); } castSquares[i] = new IntVec(0, 0); } turnCount--; isActuallyFilled = false; }
public override void toggledAttackEffects(HeroClasses.Hero hero) { hero.health -= HeroClasses.Hero.level; }
public override void finishCastandDealDamage(int heroLevel, int heroDamage, Level mapLevel, HeroClasses.Hero hero) { damage = calculateDamage(heroLevel, heroDamage); cooldown = abilityCooldown; wasJustCast = true; isActuallyFilled = false; for (int i = 0; i < castSquares.Length; i++) { GameCharacter test = (GameCharacter)mapLevel.CharacterEntities.FindEntity(castSquares[i]); if (test != null && !test.isFriendly) { Audio.playSound("ArrowShot"); Engine.Engine.AddVisualAttack(hero, test, "Enemies/Attacks/Arrow", 1.0f, 1.0f, 0); test.TakeDamage(damage, hero); } castSquares[i] = new IntVec(0, 0); } }
public override void finishCastandDealDamage(int heroLevel, int heroDamage, Mapping.Level mapLevel, HeroClasses.Hero hero) { if (!isActive) { Engine.Engine.Log(hero.damageBoost.ToString()); hero.damageBoost += increase + heroLevel * 2; Engine.Engine.Log(hero.damageBoost.ToString()); createdLevel = heroLevel; isActive = true; wasJustCast = true; } else if (isActive) { hero.damageBoost -= increase + heroLevel; wasJustCast = true; isActive = false; } cooldown = 0; }