public void InitWindUp(HeldEquipment _prop, WeaponStyle _weaponStyle, int _windUpDepth)
 {
     type        = CombatActionType.WindUp;
     prop        = _prop;
     weaponStyle = _weaponStyle;
     windUpLevel = _windUpDepth;
 }
Beispiel #2
0
        private static List <InventoryType> GetInventoryTypesForWeaponStyle(WeaponStyle style)
        {
            var slots = new List <InventoryType>();

            switch (style)
            {
            case WeaponStyle.DualWield:
                slots.Add(InventoryType.WeaponMainHand);
                slots.Add(InventoryType.WeaponOffHand);
                slots.Add(InventoryType.Weapon);
                break;

            case WeaponStyle.OneHanderAndShield:
                slots.Add(InventoryType.WeaponMainHand);
                slots.Add(InventoryType.Weapon);
                slots.Add(InventoryType.Shield);
                break;

            case WeaponStyle.TwoHander:
                slots.Add(InventoryType.TwoHandWeapon);
                break;
            }

            return(slots);
        }
Beispiel #3
0
 public void Clear()
 {
     prevAction      = null;
     weaponStyle     = null;
     targetArea      = null;
     windUpLevel     = 0;
     offBalanceLevel = 0;
 }
Beispiel #4
0
 public CombatActorState()
 {
     prevAction      = null;
     weaponStyle     = null;
     targetArea      = null;
     windUpLevel     = 0;
     offBalanceLevel = 0;
 }
 public void InitParry(HeldEquipment _prop, WeaponStyle _weaponStyle, int _windUpDepth, int _offBalance)
 {
     type        = CombatActionType.Parry;
     prop        = _prop;
     weaponStyle = _weaponStyle;
     windUpLevel = _windUpDepth;
     offBalance  = _offBalance;
 }
 public void InitSwing(HeldEquipment _prop, WeaponStyle _weaponStyle, List <Vector2> _targetArea,
                       int _windUpDepth)
 {
     type        = CombatActionType.Swing;
     prop        = _prop;
     weaponStyle = _weaponStyle;
     targetArea  = _targetArea;
     windUpLevel = _windUpDepth;
 }
Beispiel #7
0
 public Weapon(WeaponDesign design, EquipmentMaterial material)
     : base(design, material)
 {
     element   = design.element;
     ammoType  = design.ammoType;
     style     = design.style;
     minRange  = design.minRange;
     maxRange  = design.maxRange;
     damage    = design.damage * material.attack[element];
     attribute = design.attribute;
 }
Beispiel #8
0
    /// <summary>
    /// 버프 유형에 맞는 버프데이터를 반환하는 함수
    /// </summary>
    /// <param name="buffType">버프 유형</param>
    /// <returns></returns>
    public BuffData GetBuffData(WeaponStyle weaponStyle, BuffType buffType)
    {
        List <BuffData> buffdataList = new List <BuffData>();

        // 배열을 리스트로 변환
        buffdataList.AddRange(buffDatas);

        List <BuffData> datas = buffdataList.FindAll(delegate(BuffData a) { return(a.weaponStyle == weaponStyle); });

        // 버프 유형이 같은 데이터를 반환
        return(datas.Find(delegate(BuffData a) { return a.buffType == buffType; }));
    }
Beispiel #9
0
        public void Init(BinaryReader BR, ContentManager Content, string AttackName, Dictionary <string, BaseSkillRequirement> DicRequirement, Dictionary <string, BaseEffect> DicEffect,
                         Dictionary <string, AutomaticSkillTargetType> DicAutomaticSkillTarget)
        {
            //Create the Part file.
            this.ItemName    = Path.GetFileNameWithoutExtension("Content/Attacks/" + AttackName + ".pew");
            this.Description = BR.ReadString();

            this.PowerFormula      = BR.ReadString();
            this.MinDamageFormula  = BR.ReadString();
            this.ENCost            = BR.ReadInt32();
            this.MaxAmmo           = BR.ReadInt32();
            this.MoraleRequirement = BR.ReadInt32();
            this.RangeMinimum      = BR.ReadInt32();
            this.RangeMaximum      = BR.ReadInt32();
            this.Accuracy          = BR.ReadInt32();
            this.Critical          = BR.ReadInt32();

            this.Pri = (WeaponPrimaryProperty)BR.ReadByte();
            if (this.Pri == WeaponPrimaryProperty.MAP)
            {
                MAPAttributes = new MAPAttackAttributes(BR);
            }
            else if (this.Pri == WeaponPrimaryProperty.PER)
            {
                PERAttributes = new PERAttackAttributes(BR, Content);
            }

            this.Sec = (WeaponSecondaryProperty)BR.ReadByte();
            PostMovementAccuracyMalus = BR.ReadByte();
            PostMovementEvasionBonus  = BR.ReadByte();

            ExplosionOption = new ExplosionOptions(BR);

            int AttackType = BR.ReadInt32();

            if (AttackType == 0)
            {
                this.AttackType = "Blank";
                Style           = WeaponStyle.M;
            }
            else if (AttackType == 1)
            {
                this.AttackType = "Melee";
                Style           = WeaponStyle.M;
            }
            else if (AttackType == 2)
            {
                this.AttackType = "Solid blade";
                Style           = WeaponStyle.M;
            }
            else if (AttackType == 3)
            {
                this.AttackType = "Energy blade";
                Style           = WeaponStyle.M;
            }
            else if (AttackType == 4)
            {
                this.AttackType = "Solid shot";
                Style           = WeaponStyle.R;
            }
            else if (AttackType == 5)
            {
                this.AttackType = "Energy shot";
                Style           = WeaponStyle.R;
            }
            else if (AttackType == 6)
            {
                this.AttackType = "Remote";
                Style           = WeaponStyle.R;
            }
            else if (AttackType == 7)
            {
                this.AttackType = "Special";
                Style           = WeaponStyle.R;
            }

            int TerrainGradeAir   = BR.ReadInt32();
            int TerrainGradeLand  = BR.ReadInt32();
            int TerrainGradeSea   = BR.ReadInt32();
            int TerrainGradeSpace = BR.ReadInt32();

            char[] Grades = new char[6] {
                '-', 'S', 'A', 'B', 'C', 'D'
            };
            DicTerrainAttribute = new Dictionary <string, char>(4);
            DicTerrainAttribute.Add(UnitStats.TerrainAir, Grades[TerrainGradeAir]);
            DicTerrainAttribute.Add(UnitStats.TerrainLand, Grades[TerrainGradeLand]);
            DicTerrainAttribute.Add(UnitStats.TerrainSea, Grades[TerrainGradeSea]);
            DicTerrainAttribute.Add(UnitStats.TerrainSpace, Grades[TerrainGradeSpace]);

            Int32 AttackAttributesCount = BR.ReadInt32();

            this.ArrayAttackAttributes = new BaseAutomaticSkill[AttackAttributesCount];

            for (int S = 0; S < AttackAttributesCount; ++S)
            {
                string RelativePath = BR.ReadString();
                ArrayAttackAttributes[S] = new BaseAutomaticSkill("Content/Attacks/Attributes/" + RelativePath + ".peaa", RelativePath, DicRequirement, DicEffect, DicAutomaticSkillTarget);
            }

            ListQuoteSet = new List <string>();
            int ListQuoteSetCount = BR.ReadInt32();

            for (int R = 0; R < ListQuoteSetCount; R++)
            {
                ListQuoteSet.Add(BR.ReadString());
            }
        }
Beispiel #10
0
        private static List<InventoryType> GetInventoryTypesForWeaponStyle(WeaponStyle style)
        {
            var slots = new List<InventoryType>();
            switch (style)
            {
                case WeaponStyle.DualWield:
                    slots.Add(InventoryType.WeaponMainHand);
                    slots.Add(InventoryType.WeaponOffHand);
                    slots.Add(InventoryType.Weapon);
                    break;
                    
                case WeaponStyle.OneHanderAndShield:
                    slots.Add(InventoryType.WeaponMainHand);
                    slots.Add(InventoryType.Weapon);
                    slots.Add(InventoryType.Shield);
                    break;

                case WeaponStyle.TwoHander:
                    slots.Add(InventoryType.TwoHandWeapon);
                    break;
            }

            return slots;
        }