public static void SetWeaponTriangle( Weapon_Triangle_Arrow wta1, Weapon_Triangle_Arrow wta2, Game_Unit attacker, Combat_Map_Object target, TactileLibrary.Data_Weapon weapon1, TactileLibrary.Data_Weapon weapon2, int distance) { //@Yeti: use in all the places weapon triangle arrow is used Game_Unit targetUnit = null; if (target.is_unit()) { targetUnit = target as Game_Unit; } ResetWeaponTriangle(wta1, wta2); WeaponTriangle tri = WeaponTriangle.Nothing; if (targetUnit != null) { tri = Combat.weapon_triangle(attacker, targetUnit, weapon1, weapon2, distance); } if (tri != WeaponTriangle.Nothing) { wta1.value = tri; if (wta2 != null && weapon2 != null) { wta2.value = Combat.reverse_wta(tri); } } float effectiveness = weapon1.effective_multiplier(attacker, targetUnit, false); wta1.set_effectiveness((int)effectiveness, targetUnit != null && targetUnit.halve_effectiveness()); if (wta2 != null && weapon2 != null) { effectiveness = weapon2.effective_multiplier(targetUnit, attacker, false); wta2.set_effectiveness((int)effectiveness, attacker.halve_effectiveness()); } }