public void pickUpItem(ItemStats item) { Transform lastItem = null; if (item is Armor) { switch (((Armor)item).type) { case Armor.ArmorPiece.helmet: if (helmet) { lastItem = helmet.transform; } helmet = (Armor)item; sC.pM.setEquipDescription(sC.pM.helmet, helmet); break; case Armor.ArmorPiece.chestplate: if (chestPlate) { lastItem = chestPlate.transform; } chestPlate = (Armor)item; sC.pM.setEquipDescription(sC.pM.chestplate, chestPlate); break; } if (lastItem) { //Drop last item lastItem.GetComponent <Rigidbody>().isKinematic = true; lastItem.parent = null; lastItem.GetComponent <Collider>().isTrigger = false; } // Set our newest item as our currently equipped item item.transform.parent = this.transform; item.transform.localPosition = Vector3.zero; item.GetComponent <Rigidbody>().isKinematic = true; item.GetComponent <Collider>().isTrigger = true; } if (item is Magic) { //print("Picked up magic"); leftWeaponController.EquipWeapon((Weapon)item); sC.pM.setEquipDescription(sC.pM.weapL1, leftWeaponController.weapons[0]); sC.pM.setEquipDescription(sC.pM.weapL2, leftWeaponController.weapons[1]); } else if (item is Weapon) { //print("Picked up weapon"); rightWeaponController.EquipWeapon((Weapon)item); sC.pM.setEquipDescription(sC.pM.weapR1, rightWeaponController.weapons[0]); sC.pM.setEquipDescription(sC.pM.weapR2, rightWeaponController.weapons[1]); } }
void ThrowAway() { GameObject tmp = Instantiate(SpritePool.instance.itemInGame, MayaMove.instance.transform.position, Quaternion.Euler(Vector3.right * 90f)); ItemStats t1 = GetComponent <ItemStats>(); ItemStats t2 = tmp.GetComponent <ItemStats>(); t2.damage = t1.damage; t2.attackSpeed = t1.attackSpeed; t2.type = t1.type; tmp.GetComponent <SpriteRenderer>().sprite = t1.GetComponent <Image>().sprite; Destroy(this.gameObject); }
public override void SerializeStats(ItemStats stats, DM_ItemStats holder) { base.SerializeStats(stats, holder); var template = holder as DM_WeaponStats; var wStats = stats as WeaponStats; if (wStats.Attacks != null && wStats.Attacks.Length == 5) { var weapon = stats.GetComponent <Weapon>(); CheckAttackDataMultipliers(weapon, wStats.Attacks); } template.Attacks = wStats.Attacks; template.AttackSpeed = wStats.AttackSpeed; template.Impact = wStats.Impact; template.StamCost = wStats.StamCost; template.BaseDamage = Damages.ParseDamageList(wStats.BaseDamage); }
public override void SerializeStats(ItemStats stats, DM_ItemStats holder) { base.SerializeStats(stats, holder); try { var item = stats.GetComponent <Item>(); var eStats = stats as EquipmentStats; Cooldown_Reduction = eStats.CooldownReduction; Hunger_Affect = eStats.HungerModifier; Thirst_Affect = eStats.ThirstModifier; Fatigue_Affect = eStats.SleepModifier; Impact_Resistance = eStats.ImpactResistance; Damage_Protection = eStats.GetDamageProtection(DamageType.Types.Physical); Stamina_Use_Penalty = eStats.StaminaUsePenalty; Mana_Use_Modifier = (float)At.GetField(eStats, "m_manaUseModifier"); Mana_Regen = eStats.ManaRegenBonus; Movement_Penalty = eStats.MovementPenalty; Pouch_Bonus = eStats.PouchCapacityBonus; Heat_Protection = eStats.HeatProtection; Cold_Protection = eStats.ColdProtection; Corruption_Protection = eStats.CorruptionResistance; Damage_Bonus = At.GetField(eStats, "m_damageAttack") as float[]; Damage_Resistance = At.GetField(eStats, "m_damageResistance") as float[]; Impact_Bonus = eStats.ImpactModifier; BarrierProtection = eStats.BarrierProtection; GlobalStatusEffectResistance = (float)At.GetField(eStats, "m_baseStatusEffectResistance"); StaminaRegenModifier = eStats.StaminaRegenModifier; } catch (Exception e) { SL.Log("Exception getting stats of " + stats.name + "\r\n" + e.Message + "\r\n" + e.StackTrace); } }