private void _Act(TacticalItem item, EquipSlot.Slot slot) { ActorAnatomy anatomy; actor.anatomy_map.TryGetValue(slot, out anatomy); anatomy.Equip(item); }
void Attach(EquipSlot.Slot target_slot, TacticalItem item) { EquipSlot slot; slots.TryGetValue(target_slot, out slot); slot.Assign(item); }
public TacticalItem Detach() { var cached = item; item = null; return(cached); }
void TestEquip(TacticalActor actor, TacticalItem item) { TestEquip2H(actor, item); TestUnequip(actor, EquipSlot.Slot.arm_l); TestEquip2H(actor, item); TestUnequip(actor, EquipSlot.Slot.arm_r); TestEquip2H(actor, item); TestUnequip(actor, EquipSlot.Slot.arm_2h); }
private static void AfterShouldDestroyItem_KeepItem(ref bool __result, TacticalItem item) { try { if (!__result || item == null) { return; } __result = false; Verbo("Force dropping {0}", item.TacticalItemDef?.ViewElementDef?.Name); } catch (Exception ex) { Error(ex); } }
public override void Equip(TacticalItem item) { EquipSlot.Slot target_slot = item.target_slot[0]; Attach(target_slot, item); if (target_slot == EquipSlot.Slot.arm_2h) { Attach(EquipSlot.Slot.arm_r, item); pair.Attach(EquipSlot.Slot.arm_l, item); } }
static bool Prefix(DieAbility __instance, ref bool __result, ref TacticalItem item) { if (__instance.TacticalActor.IsControlledByPlayer) { return(true); // game will let it live...anyway } __result = false; // never destroy items via RNG; return(false); // returning false here lets us skip the original method used here }
void TestEquip2H(TacticalActor actor, TacticalItem item) { ActEquip action = (ActEquip)actor.actions["Equip Item"]; action.Act(item); var q = actor.QueryAnatomy(); Assert.IsTrue(q[EquipSlot.Slot.arm_2h] == item.name); Assert.IsTrue(q[EquipSlot.Slot.arm_l] == item.name); Assert.IsTrue(q[EquipSlot.Slot.arm_r] == item.name); Debug.Log("Test Equip 2H completed"); }
// Use this for initialization void Start() { tactical_actor_prefab = Resources.Load <TacticalActor>("ActorPrefab"); tactical_equipment_prefab = Resources.Load <TacticalItem>("ItemPrefab"); TacticalActor actor_0 = Instantiate(tactical_actor_prefab); TacticalItem item_2h = Instantiate(tactical_equipment_prefab); actor_0.Spawn(); item_2h.Spawn("Gaebolg Spear", EquipSlot.Slot.arm_2h); TestEquip(actor_0, item_2h); }
public override void UnEquip(EquipSlot.Slot slot) { TacticalItem item = Detach(slot); if (item != null && item.target_slot[0] == EquipSlot.Slot.arm_2h) { switch (side) { case Side.l: pair.UnEquip(EquipSlot.Slot.arm_r); pair.UnEquip(EquipSlot.Slot.arm_2h); break; case Side.r: pair.UnEquip(EquipSlot.Slot.arm_l); break; } } }
public abstract void Equip(TacticalItem item);
public override void Equip(TacticalItem item) { }
public void Assign(TacticalItem _item) { item = _item; }
public EquipSlot() { item = null; }
public void Act(TacticalItem item) { EquipSlot.Slot slot = item.target_slot[0]; _Act(item, slot); }
public void Act(TacticalItem item, EquipSlot.Slot slot) { _Act(item, slot); }