コード例 #1
0
        public void ChangeEquippedWeapon(int index, InstanceWeapon instanceWeapon)
        {
            if (instanceWeapon != null)
            {
                Assert.IsTrue(this.Inventory.Weapons.Contains(instanceWeapon), $"所持していない武器を装備しようとしました");
            }

            var tempEquippedWeapon = this.status.EquippedWeapons[index];

            // すでに装備している箇所があったら外す
            for (var i = 0; i < this.status.EquippedWeapons.Count; i++)
            {
                var e = this.status.EquippedWeapons[i];
                if (e.InstanceWeapon == instanceWeapon)
                {
                    e.Change(tempEquippedWeapon.InstanceWeapon);
                    this.owner.Broker.Publish(ChangedEquippedWeapon.Get(i));
                    break;
                }
            }

            this.status.EquippedWeapons[index].Change(instanceWeapon);
            this.owner.Broker.Publish(ChangedEquippedWeapon.Get(index));

            this.ResetItemModifierParameter();
        }
コード例 #2
0
 public void RemoveEquippedWeapon(int index)
 {
     this.status.EquippedWeapons[index].Change(null);
     this.owner.Broker.Publish(ChangedEquippedWeapon.Get(index));
 }