JACK_C#_遊戲英雄武器和攻擊

    //        1、創建武器類,包含字段:加攻擊力,加生命值,加防禦力,加速度值,類型(包括攻擊,防禦,法術,移動,打野
    //        創建英雄類,包含字段:血量,攻擊力,名字,防禦力,移動速度,等級
    //        英雄類當中包括的方法:
    //        (1)加裝裝備
    //        (2)卸載裝備
    //        (3)攻擊英雄
    //        (4)受到攻擊會掉血,舉例:攻擊力爲100的時候,掉血爲100。當血量小於等於0的時候英雄陣亡
    //        (5)每殺一個英雄等級+1,同時攻擊力增加200
    //        模擬英雄互相傷害的場景

public class Weapon

    {
        public enum WeaponType{
            adType,
            tdType,
            apType,
            spType,
            juType
        }

        private int addATK;
        private int addHP;
        private int addDefense;
        private int addSpeed;
        private WeaponType equipment;

        public int AddATK{
            get{ 
                return addATK;
            }
        }
        public int AddHP{
            get{ 
                return addHP;
            }
        }
        public int AddDefense{
            get{ 
                return addDefense;
            }
        }
        public int AddSpeed{
            get{ 
                return addSpeed;
            }
        }
        public WeaponType Equipment{
            get{ 
                return equipment;
            }
        }
        public Weapon (int addATK,int addHP,int addDefense,int addSpeed,WeaponType equipment) //對已經初始化好的對象不能再次修改
        {
            this.addHP = AddHP;
            this.addATK = AddATK;
            this.addDefense = AddDefense;
            this.addSpeed = AddSpeed;
            this.equipment = equipment;
        }

    }

public class Heros
    {
        public string name;
        public int HP;
        public int ATK;
        public int DF;
        public int SP;
        public int level = 0;
        private  Weapon m_weapon;
        public Weapon M_weapon{
            get{ 
                return m_weapon;
            }
            set { 
                if (value == null) {
                    HP -= m_weapon.AddHP;
                    ATK -= m_weapon.AddATK;
                    DF -= m_weapon.AddDefense;
                    SP -= m_weapon.AddSpeed;
                } else {
                    HP += value.AddHP;
                    ATK += value.AddATK;
                    DF += value.AddDefense;
                    SP += value.AddSpeed;
                }
            }
        }

        public Heros (string name,int HP,int ATK,int DF,int SP,Weapon m_weapon)
        {
            this.name = name;
            this.HP = HP;
            this.ATK = ATK;
            this.DF = DF;
            this.SP = SP;
            this.m_weapon = m_weapon;
        }

        public void Loadweappon(Weapon weapon){
            if(this.m_weapon != null) {
                Unloadweapon();
            }
            this.M_weapon = weapon;
        }

        public void Unloadweapon(){
            if (this.m_weapon != null) {
                this.M_weapon = null;
            }        
        }

        //受傷掉血
        public void Hurt(Heros enemy){
            HP -= enemy.ATK;
            if (HP > 0) {
                Console.WriteLine ("英雄受傷!當前血量爲{0}", HP);
            } else {
                Dead (this);
                enemy.level++;
            }
        }
        //死亡
        public void Dead (Heros hero){
            Console.WriteLine ("英雄死亡!");

        }

        //攻擊英雄
        public void Attack(Heros enemy){
            enemy.Hurt(this);
        }
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章