示例#1
0
 public void BeforeEveryTest()
 {
     entityFactory = new GameObject().AddComponent <EntityFactory>();
     entityBuilder = new GameObject().AddComponent <EntityBuilder>();
     weaponFactory = new GameObject().AddComponent <WeaponFactory>();
     weaponBuilder = new GameObject().AddComponent <WeaponBuilder>();
 }
示例#2
0
 public Weapon Forge(WeaponBuilder weaponBuilder)
 {
     weaponBuilder.CreateWeapon();
     weaponBuilder.SetBlade();
     weaponBuilder.SetGuard();
     weaponBuilder.SetDetail();
     return(weaponBuilder._weapon);
 }
 void Start()
 {
     WeaponBuilder[] temp = Resources.FindObjectsOfTypeAll <WeaponBuilder>();
     if (temp.Length > 0)
     {
         builder = temp[0];
         builder.YellowButtons.SetActive(unlockYellow);
         builder.RedButtons.SetActive(unlockRed);
     }
 }
示例#4
0
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
        }

        DontDestroyOnLoad(gameObject);
    }
示例#5
0
 void Awake()
 {
     current = this;
 }
示例#6
0
        public static void Main()
        {
            var weapons = new HashSet <Weapon>();

            var weaponBuilder = new WeaponBuilder();
            var gemBuilder    = new GemBuilder();

            while (true)
            {
                var input = Console.ReadLine().Trim().Split(';');

                if (input[0].Equals("END"))
                {
                    break;
                }

                string[] temp;
                string   type;
                int      slotIndex;
                string   weaponName;

                switch (input[0])
                {
                case "Create":
                    temp = input[1].Split();

                    var rarity = temp[0];
                    type       = temp[1];
                    weaponName = input[2];

                    weaponBuilder.Create(rarity, type, weaponName);
                    weapons.Add(weaponBuilder.Item);
                    break;

                case "Add":
                    temp = input[3].Split();
                    var clarity = temp[0];
                    type = temp[1];

                    weaponName = input[1];
                    slotIndex  = int.Parse(input[2]);

                    gemBuilder.Create(clarity, type);

                    weaponBuilder
                    .ChangeWith(weapons, w => w.Name.Equals(weaponName))
                    .AddGem(gemBuilder.Item, slotIndex);
                    break;

                case "Remove":
                    weaponName = input[1];
                    slotIndex  = int.Parse(input[2]);

                    weaponBuilder
                    .ChangeWith(weapons, w => w.Name.Equals(weaponName))
                    .RemoveGem(slotIndex);
                    break;

                case "Print":
                    weaponName = input[1];

                    weaponBuilder.ChangeWith(weapons, w => w.Name.Equals(weaponName));

                    Console.WriteLine(weaponBuilder.Item);
                    break;
                }
            }
        }
示例#7
0
 void Awake()
 {
     instance = this;
 }
示例#8
0
    public IWeapon CreatWeapon(WeaponType weaponType, IWeapon weapon)
    {
        IWeaponBuilder weaponBuilder = new WeaponBuilder(weaponType, weapon);

        return(WeaponBuilderDirector.Construct(weaponBuilder));
    }
示例#9
0
 public WeaponFactory()
 {
     this._weaponBuilder = new WeaponBuilder();
 }