public override void fillDamageStat(ref DamageStat dmgStat) { foreach (KeyValuePair <Item.Type, Item> equipedItem in Equipment.equipment.items) { if (equipedItem.Value != null) { WeaponStats[] weaponStats = equipedItem.Value.gameObject.GetComponentsInChildren <WeaponStats>(true); if (weaponStats != null) { foreach (WeaponStats wstat in weaponStats) { wstat.fillDamageStat(ref dmgStat); } } } } Skill[] skills = gameObject.GetComponentsInChildren <Skill>(true); if (skills != null) { foreach (Skill skl in skills) { skl.fillDamageStat(ref dmgStat); } } }
public void Init() { var testBehavior = new TalentsBehavior(null); var warriorAttribute = new WarriorAttribute(); var rogueAttribute = new RogueAttribute(); var mageAttribute = new MageAttribute(); var damageStat = new DamageStat(); playerThing = new Thing() { Name = "PlayerThing", Id = TestThingID.Generate("testthing") }; playerThing.Behaviors.Add(testBehavior); warriorAttribute.Parent = playerThing; playerThing.AddAttribute(warriorAttribute); mageAttribute.Parent = playerThing; playerThing.AddAttribute(rogueAttribute); rogueAttribute.Parent = playerThing; playerThing.AddAttribute(mageAttribute); warriorAttribute.SetValue(10, playerThing); rogueAttribute.SetValue(10, playerThing); mageAttribute.SetValue(10, playerThing); playerThing.Stats.Add(damageStat.Name, damageStat); }
public void Init() { this.playerThing = new Thing() { Name = "PlayerThing", Id = TestThingID.Generate("testthing") }; var testBehavior = new TalentsBehavior(null); var warriorAttribute = new WarriorAttribute(); var rogueAttribute = new RogueAttribute(); var mageAttribute = new MageAttribute(); var damageStat = new DamageStat(); var attackStat = new AttackStat(); var initiativeStat = new InitiativeStat(); var awarenessSkill = new SkillAwareness(); warriorAttribute.Parent = this.playerThing; this.playerThing.AddAttribute(warriorAttribute); mageAttribute.Parent = this.playerThing; this.playerThing.AddAttribute(rogueAttribute); rogueAttribute.Parent = this.playerThing; this.playerThing.AddAttribute(mageAttribute); warriorAttribute.SetValue(10, this.playerThing); rogueAttribute.SetValue(10, this.playerThing); mageAttribute.SetValue(10, this.playerThing); this.playerThing.Stats.Add(damageStat.Name, damageStat); this.playerThing.Stats.Add(attackStat.Name, attackStat); this.playerThing.Stats.Add(initiativeStat.Name, initiativeStat); this.playerThing.Skills.Add(awarenessSkill.Name, awarenessSkill); this.playerThing.Behaviors.Add(testBehavior); }
public void addItem(Item item) { Debug.Log("This got called"); StatModifier armorMod = new StatModifier(item.armor, item.statModType, item.armorType);; StatModifier healthMod = new StatModifier(item.health, item.statModType, item.healthType); StatModifier damageMod = new StatModifier(item.damage, item.statModType, item.damageType); HealthStat health = statController.GetStatOfType(StatType.HealthStat) as HealthStat; ArmorStat armor = statController.GetStatOfType(StatType.ArmorStat) as ArmorStat; DamageStat damage = statController.GetStatOfType(StatType.DamageStat) as DamageStat; statController.AddModifier(healthMod); statController.AddModifier(armorMod); statController.AddModifier(damageMod); Debug.Log("Health total is " + health.CalculateFinalValue()); Debug.Log("Damage total is " + damage.CalculateFinalValue()); Debug.Log("Armor total is " + armor.CalculateFinalValue()); items[(int)item.equipmentSlot] = item; for (int i = 0; i < equipmentUISlots.Length; i++) { if (item.equipmentSlot == equipmentUISlots[i].equipmentSlot) { equipmentUISlots[i].addItem(item); } } }
public virtual void fillDamageStat(ref DamageStat dmgStat) { dmgStat.attackMaxDamage = getMaxDamage(); dmgStat.attackDiceDamage = getDamageForNewAttack(); dmgStat.strengthPercentage = getAttackTypeMultiplier(); character.fillDamageStat(ref dmgStat); }
// do something on collision public override void onCollision(GameObject projectile, Collision2D collision) { Collider2D collider = collision.GetContact(0).collider; //Debug.Log(User.name + " hit " + collider.name); if (collider.gameObject == User) { return; } if (breakWalls) { Vector2 hitPos = collision.GetContact(0).point - collision.relativeVelocity.normalized * .1f; if (collision.GetContact(0).collider.name == "Walls") { FindObjectsOfType <Map.MapManager>()[0].DamageTile(hitPos.x, hitPos.y, damage); Destroy(projectile); } } StatControler sC; StatControler sCUser = User.GetComponent <StatControler>(); if ((sC = collision.GetContact(0).collider.gameObject.GetComponent <StatControler>()) != null) { int finalDamage = 0; finalDamage += damage; HealthStat health = sC.GetStatOfType(StatType.HealthStat) as HealthStat; ArmorStat armor = sC.GetStatOfType(StatType.ArmorStat) as ArmorStat; DamageStat damageBonus = sCUser.GetStatOfType(StatType.DamageStat) as DamageStat; if (armor != null) { finalDamage -= (int)armor.CalculateFinalValue(); } if (damageBonus != null) { finalDamage += (int)damageBonus.CalculateFinalValue(); } //Debug.Log(health); if (health != null) { //Debug.Log(finalDamage); health.addValue(-finalDamage); Destroy(projectile); } } }
public void AddTalentWithRulesBeforeBehaviorParentSetTest() { var testBehavior = new TalentsBehavior(null); var warriorAttribute = new WarriorAttribute(); var rogueAttribute = new RogueAttribute(); var mageAttribute = new MageAttribute(); var damageStat = new DamageStat(); var attackStat = new AttackStat(); warriorAttribute.Parent = this.playerThing; playerThing.AddAttribute(warriorAttribute); mageAttribute.Parent = this.playerThing; playerThing.AddAttribute(rogueAttribute); rogueAttribute.Parent = this.playerThing; playerThing.AddAttribute(mageAttribute); warriorAttribute.SetValue(10, playerThing); rogueAttribute.SetValue(10, playerThing); mageAttribute.SetValue(10, playerThing); playerThing.Stats.Add(damageStat.Name, damageStat); playerThing.Stats.Add(attackStat.Name, attackStat); var testTalent = new ChampionTalent(); playerThing.Behaviors.Add(testBehavior); var behavior = playerThing.Behaviors.FindFirst <TalentsBehavior>(); behavior.AddTalent(testTalent); Verify.IsTrue(behavior.ManagedTalents.Contains(testTalent)); Verify.IsNotNull(testTalent.PlayerThing); behavior.RemoveTalent(testTalent); playerThing.Behaviors.Remove(testBehavior); }
public void removeItem(Item item) { StatModifier armorMod = new StatModifier(item.armor, item.statModType, item.armorType);; StatModifier healthMod = new StatModifier(item.health, item.statModType, item.healthType); StatModifier damageMod = new StatModifier(item.damage, item.statModType, item.damageType); HealthStat health = statController.GetStatOfType(StatType.HealthStat) as HealthStat; ArmorStat armor = statController.GetStatOfType(StatType.ArmorStat) as ArmorStat; DamageStat damage = statController.GetStatOfType(StatType.DamageStat) as DamageStat; statController.RemoveModifier(healthMod); statController.RemoveModifier(armorMod); statController.RemoveModifier(damageMod); Debug.Log("Health total is " + health.CalculateFinalValue()); Debug.Log("Damage total is " + damage.CalculateFinalValue()); Debug.Log("Armor total is " + armor.CalculateFinalValue()); items[(int)item.equipmentSlot] = null; }
// do something on collision public override void onCollision(GameObject attack, Collision2D collider) { //Debug.Log(User.name + " hit " + collider.gameObject.name); if (collider.gameObject == User) { return; } StatControler sC; StatControler sCUser = User.GetComponent <StatControler>(); if ((sC = collider.gameObject.GetComponent <StatControler>()) != null) { int finalDamage = 0; finalDamage += damage; HealthStat health = sC.GetStatOfType(StatType.HealthStat) as HealthStat; ArmorStat armor = sC.GetStatOfType(StatType.ArmorStat) as ArmorStat; DamageStat damageBonus = sCUser.GetStatOfType(StatType.DamageStat) as DamageStat; if (armor != null) { finalDamage -= (int)armor.CalculateFinalValue(); } if (damageBonus != null) { finalDamage += (int)damageBonus.CalculateFinalValue(); } //Debug.Log(health); if (health != null) { health.addValue(-finalDamage); //Debug.Log("Players health is = " + health.CurrentValue); } } }
public static void CalculateInvStats(PlayerObject pobj) { int physical = 0; int holy = 0; int fire = 0; int nature = 0; int frost = 0; int shadow = 0; int strength = 0; int agility = 0; int stamina = 0; int intellect = 0; int spirit = 0; int health = 0; int power = 0; float mindamage = 2.0f; float maxdamage = 4.0f; int baseattacktime = 2000; for (int i = 0; i < 18; i++) { ItemObject item = pobj.Inventory[i]; if (item != null && item.Template != null) { DBItemTemplate template = item.Template; physical += template.Resists.Physical; holy += template.Resists.Holy; fire += template.Resists.Fire; nature += template.Resists.Nature; frost += template.Resists.Frost; shadow += template.Resists.Shadow; for (int bonus = 0; bonus < 10; bonus++) { ItemBonus itembonus = template.getItemBonus(bonus); if (itembonus.Stat >= 0 && itembonus.Bonus != 0) { Console.WriteLine("itembonusstat: " + itembonus.Stat); Console.WriteLine("itembonusstatbonus: " + itembonus.Bonus); if (itembonus.Stat == 0) { power += itembonus.Bonus; } else if (itembonus.Stat == 1) { health += itembonus.Bonus; } else if (itembonus.Stat == 3) { agility += itembonus.Bonus; } else if (itembonus.Stat == 4) { strength += itembonus.Bonus; } else if (itembonus.Stat == 5) { intellect += itembonus.Bonus; } else if (itembonus.Stat == 6) { spirit += itembonus.Bonus; } else if (itembonus.Stat == 7) { stamina += itembonus.Bonus; } } else { break; } } if (i == (int)INVSLOT.MAINHAND) { DamageStat damagestat = template.getDamageStat(0); mindamage = (float)damagestat.Min; maxdamage = (float)damagestat.Max; baseattacktime = template.WeaponSpeed; } if (i == (int)INVSLOT.OFFHAND) { if (template.SubClass == 5 || template.SubClass == 6) { pobj.HasShield = true; } else { pobj.HasShield = false; } } } } pobj.MaxHealth += health; pobj.MaxPower += power; pobj.MaxHealth += (stamina * 10); pobj.MaxPower += (intellect * 10); pobj.BaseStrength += strength; pobj.BaseStamina += stamina; pobj.BaseAgility += agility; pobj.BaseIntellect += intellect; pobj.BaseSpirit += spirit; pobj.Resist_Physical = physical; pobj.Resist_Holy = holy; pobj.Resist_Fire = fire; pobj.Resist_Nature = nature; pobj.Resist_Frost = frost; pobj.Resist_Shadow = shadow; pobj.MinDamage = mindamage; pobj.MaxDamage = maxdamage; pobj.BaseAttackTime = baseattacktime; //baseattacktime; if (pobj.Health > pobj.MaxHealth) { pobj.Health = pobj.MaxHealth; } if (pobj.Power > pobj.MaxPower) { pobj.Power = pobj.MaxPower; } }
public virtual void fillDamageStat(ref DamageStat dmgStat) { }
public override void fillDamageStat(ref DamageStat stat) { setDamageStats(ref stat, character.stats); }
public static void setDamageStats(ref DamageStat stat, CharacterStats charStats) { stat.attackDiceDamage = stat.attackMaxDamage; stat.attackDiceDamage *= 1.5f; stat.attackMaxDamage *= 1.5f; }
public virtual void fillDamageStat(ref DamageStat stat) { stat.weaponDamage += BaseDamage; stat.weaponDamage += getStatAttack(); }
// do something on collision public override void onCollision(GameObject projectile, Collision2D collision) { Collider2D collider = collision.GetContact(0).collider; //Debug.Log(User.name + " hit " + collider.name); if (collider.gameObject == User) { return; } if (breakWalls) { Vector2 hitPos = collision.GetContact(0).point - collision.relativeVelocity.normalized * .1f; if (collision.GetContact(0).collider.name == "Walls") { Instantiate(explosion, hitPos, new Quaternion()); for (float i = -explosionRaidius; i <= explosionRaidius; ++i) { for (float j = -explosionRaidius; j <= explosionRaidius; ++j) { var d = i * i + j * j; if (d <= sqrR) { Map.MapManager.instance.DamageTile(hitPos.x + i, hitPos.y + j, damage / d); } } } Destroy(projectile); } } StatControler sC; StatControler sCUser = User.GetComponent <StatControler>(); if ((sC = collision.GetContact(0).collider.gameObject.GetComponent <StatControler>()) != null) { int finalDamage = 0; finalDamage += damage; HealthStat health = sC.GetStatOfType(StatType.HealthStat) as HealthStat; ArmorStat armor = sC.GetStatOfType(StatType.ArmorStat) as ArmorStat; DamageStat damageBonus = sCUser.GetStatOfType(StatType.DamageStat) as DamageStat; if (armor != null) { finalDamage -= (int)armor.CalculateFinalValue(); } if (damageBonus != null) { finalDamage += (int)damageBonus.CalculateFinalValue(); } //Debug.Log(health); if (health != null) { //Debug.Log(finalDamage); health.addValue(-finalDamage); Destroy(projectile); } } }