Пример #1
0
    // 建立武器
    public override IWeapon CreateWeapon(ENUM_Weapon emWeapon)
    {
        IWeapon pWeapon   = null;
        string  AssetName = "";
        int     AttrID    = 0;

        //根据武器类型建立
        switch (emWeapon)
        {
        case ENUM_Weapon.Knife:
            pWeapon   = new WeaponKnife();
            AssetName = "5";
            AttrID    = 1;
            break;

        default:
            Debug.LogWarning("创建[" + emWeapon + "]失败!!!");
            return(null);
        }

        // 加载武器资源
        IAssetFactory AssetFactory    = GameFactory.GetAssetFactory();
        Sprite        WeaponGameObjet = AssetFactory.LoadWeapon(AssetName);

        pWeapon.SetIWeapon(WeaponGameObjet);

        // 设置武器的威力
        IAttrFactory theAttrFactory = GameFactory.GetAttrFactory();
        WeaponAttr   theWeaponAttr  = theAttrFactory.GetWeaponAttr(AttrID);

        pWeapon.SetWeaponAttr(theWeaponAttr);

        return(pWeapon);
    }
Пример #2
0
    private void InitWeaponInstances()
    {
        _weaponPlacementDictionary = new Dictionary <WeaponType, WeaponPlacement>();

        WeaponKnife knife = Instantiate(_weaponList.GetWeaponList().Knife);

        knife.transform.parent        = _rightHandSocket;
        knife.transform.localPosition = Vector3.zero;
        WeaponPlacement wk = new WeaponPlacement(_knifeSocket, knife);

        _weaponPlacementDictionary.Add(WeaponType.Knife, wk);

        WeaponPistol pistol = Instantiate(_weaponList.GetWeaponList().Pistol);

        pistol.transform.parent        = _pistolSocket;
        pistol.transform.localPosition = Vector3.zero;
        pistol.transform.rotation      = _pistolSocket.rotation;
        WeaponPlacement wp = new WeaponPlacement(_pistolSocket, pistol);

        _weaponPlacementDictionary.Add(WeaponType.Pistol, wp);

        WeaponRifle rifle = Instantiate(_weaponList.GetWeaponList().Rifle);

        rifle.transform.parent        = _rifleSocket;
        rifle.transform.localPosition = Vector3.zero;
        rifle.transform.localRotation = _pistolSocket.rotation;
        WeaponPlacement wr = new WeaponPlacement(_rifleSocket, rifle);

        _weaponPlacementDictionary.Add(WeaponType.Rifle, wr);
    }
Пример #3
0
    public void Take_Damage_Knife(WeaponKnife knife)
    {
        if (took_hit_invincible)
        {
            return;
        }

        knife.Fix_Knife_To(this.gameObject);
        Take_Damage(knife.damage);
    }
Пример #4
0
        public void Weapon_UpgradeWeapon_Tank()
        {
            Weapon w = new WeaponKnife();

            w = w.Upgrade(CharacterClass.Tank);
            Assert.IsTrue(w is WeaponPistol);

            w = w.Upgrade(CharacterClass.Tank);
            Assert.IsTrue(w is WeaponPistolShield);

            w = w.Upgrade(CharacterClass.Tank);
            Assert.IsTrue(w is WeaponPistolShield);
        }
Пример #5
0
        public void Weapon_UpgradeWeapon_Support()
        {
            Weapon w = new WeaponKnife();

            w = w.Upgrade(CharacterClass.Support);
            Assert.IsTrue(w is WeaponShotgun);

            w = w.Upgrade(CharacterClass.Support);
            Assert.IsTrue(w is WeaponAdvancedShotgun);

            w = w.Upgrade(CharacterClass.Support);
            Assert.IsTrue(w is WeaponAdvancedShotgun);
        }
Пример #6
0
        public void Weapon_UpgradeWeapon_Gunner()
        {
            Weapon w = new WeaponKnife();

            w = w.Upgrade(CharacterClass.Gunner);
            Assert.IsTrue(w is WeaponAR);

            w = w.Upgrade(CharacterClass.Gunner);
            Assert.IsTrue(w is WeaponAdvancedAR);

            w = w.Upgrade(CharacterClass.Gunner);
            Assert.IsTrue(w is WeaponAdvancedAR);
        }
Пример #7
0
        public void Weapon_Fire_CreatesBullets()
        {
            Weapon w = new WeaponAdvancedAR();

            Assert.IsTrue(w.Fire(Vector2.One).Count > 0);

            w = new WeaponAdvancedShotgun();
            Assert.IsTrue(w.Fire(Vector2.One).Count > 0);

            w = new WeaponAR();
            Assert.IsTrue(w.Fire(Vector2.One).Count > 0);

            w = new WeaponKnife();
            Assert.IsTrue(w.Fire(Vector2.One).Count > 0);

            w = new WeaponPistol();
            Assert.IsTrue(w.Fire(Vector2.One).Count > 0);

            w = new WeaponPistolShield();
            Assert.IsTrue(w.Fire(Vector2.One).Count > 0);

            w = new WeaponShotgun();
            Assert.IsTrue(w.Fire(Vector2.One).Count > 0);
        }
Пример #8
0
 public WeaponListModel(WeaponKnife knife, WeaponPistol pistol, WeaponRifle rifle)
 {
     Knife  = knife;
     Pistol = pistol;
     Rifle  = rifle;
 }