示例#1
0
        public Texture2D GetWeapon(bool isBow = false)
        {
            WeaponSpriteType type = WeaponSpriteType.Standing;

            switch (charRef.State)
            {
            case CharacterActionState.Walking:
                switch (_data.walkFrame)
                {
                case 1: type = WeaponSpriteType.WalkFrame1; break;

                case 2: type = WeaponSpriteType.WalkFrame2; break;

                case 3: type = WeaponSpriteType.WalkFrame3; break;

                case 4: type = WeaponSpriteType.WalkFrame4; break;
                }
                break;

            case CharacterActionState.Attacking:
                if (isBow)
                {
                    switch (_data.attackFrame)
                    {
                    case 1: type = WeaponSpriteType.Shooting; break;

                    case 2: type = WeaponSpriteType.Standing; break;
                    }
                }
                else
                {
                    switch (_data.attackFrame)
                    {
                    case 1: type = WeaponSpriteType.SwingFrame1; break;

                    case 2:
                        type = _data.facing == EODirection.Down || _data.facing == EODirection.Right
                                                                        ? WeaponSpriteType.SwingFrame2Spec
                                                                        : WeaponSpriteType.SwingFrame2;
                        break;
                    }
                }
                break;

            case CharacterActionState.SpellCast:
                type = WeaponSpriteType.SpellCast;
                break;

            case CharacterActionState.Sitting: return(null);                    //no weapon when sitting
            }

            short    baseWeaponValue = (short)((_data.weapon - 1) * 100);
            GFXTypes gfxFile         = _data.gender == 0 ? GFXTypes.FemaleWeapons : GFXTypes.MaleWeapons;
            int      factor          = (_data.facing == EODirection.Down || _data.facing == EODirection.Right) ? 0 : 1;

            factor *= getFactor(type);
            int gfxNumber = baseWeaponValue + (int)type + factor;

            return(GFXLoader.TextureFromResource(gfxFile, gfxNumber, true));
        }
示例#2
0
        private int getFactor(WeaponSpriteType type)
        {
            switch (type)
            {
            case WeaponSpriteType.WalkFrame1:
            case WeaponSpriteType.WalkFrame2:
            case WeaponSpriteType.WalkFrame3:
            case WeaponSpriteType.WalkFrame4:
                return(4);

            case WeaponSpriteType.SwingFrame1:
            case WeaponSpriteType.SwingFrame2:
                return(2);
            }
            return(1);
        }
        private int GetOffsetBasedOnState(WeaponSpriteType type)
        {
            switch (type)
            {
            case WeaponSpriteType.WalkFrame1:
            case WeaponSpriteType.WalkFrame2:
            case WeaponSpriteType.WalkFrame3:
            case WeaponSpriteType.WalkFrame4:
                return(4);

            case WeaponSpriteType.SwingFrame1:
            case WeaponSpriteType.SwingFrame2:
                return(2);
            }
            return(1);
        }
示例#4
0
		private int getFactor(WeaponSpriteType type)
		{
			switch (type)
			{
				case WeaponSpriteType.WalkFrame1:
				case WeaponSpriteType.WalkFrame2:
				case WeaponSpriteType.WalkFrame3:
				case WeaponSpriteType.WalkFrame4:
					return 4;
				case WeaponSpriteType.SwingFrame1:
				case WeaponSpriteType.SwingFrame2:
					return 2;
			}
			return 1;
		}