示例#1
0
    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]);
        }
    }
示例#2
0
    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);
    }
示例#3
0
        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);
            }
        }