private void Start() { string[] array = new string[5] { "K_SHOOTER1", "K_SHOOTER2", "K_SHOOTER3", "K_SHOOTER4", "K_SHOOTER5" }; battleChat = GetComponent <BattleChat>(); VerifyAudioSource(); VerifyLocalController(); tools = new ShooterTool[MyInfoManager.Instance.ShooterTools.Length]; for (int i = 0; i < MyInfoManager.Instance.ShooterTools.Length; i++) { tools[i] = null; ConsumableDesc consumableDesc = null; Item itemBySequence = MyInfoManager.Instance.GetItemBySequence(MyInfoManager.Instance.ShooterTools[i]); if (itemBySequence != null && itemBySequence.IsAmount && itemBySequence.Template != null && itemBySequence.Template.type == TItem.TYPE.SPECIAL) { TSpecial tSpecial = (TSpecial)itemBySequence.Template; string func = TItem.FunctionMaskToString(tSpecial.functionMask); consumableDesc = ConsumableManager.Instance.Get(func); if (consumableDesc != null && !consumableDesc.isShooterTool) { consumableDesc = null; } } if (itemBySequence != null && consumableDesc != null) { tools[i] = new ShooterTool(this, consumableDesc, itemBySequence, base.audio, array[i], custom_inputs.Instance.GetKeyCodeName(array[i]), battleChat, localController); } } }
public ShooterTool(ShooterTools _tools, ConsumableDesc _desc, Item _item, AudioSource _audio, string _input, string _hotkey, BattleChat _battleChat, LocalController _localController) { tools = _tools; desc = _desc; item = _item; audio = _audio; input = _input; hotkey = _hotkey; active = true; battleChat = _battleChat; controller = _localController; coolTimeInst = desc.cooltime; switch (desc.name) { case "heal": case "heal50": case "heal30": { float num = MyInfoManager.Instance.SumFunctionFactor("hp_cooltime"); coolTimeInst = desc.cooltime - (float)Mathf.FloorToInt(num * desc.cooltime); break; } } }
public void DoBuff() { numBuf = 0; pointBooster = 0f; xpBooster = 0f; luck = 0f; if (MyInfoManager.Instance.HaveFunction("premium_account") >= 0) { xpBooster += 10f; pointBooster += 10f; } List <long> list = new List <long>(); for (int i = 0; i < MyInfoManager.Instance.ShooterTools.Length; i++) { ConsumableDesc consumableDesc = null; Item itemBySequence = MyInfoManager.Instance.GetItemBySequence(MyInfoManager.Instance.ShooterTools[i]); if (itemBySequence != null && itemBySequence.IsAmount && itemBySequence.Template != null && itemBySequence.Template.type == TItem.TYPE.SPECIAL && itemBySequence.Amount > 0 && !list.Contains(itemBySequence.Seq)) { itemBySequence.AmountBuf = itemBySequence.Amount; list.Add(itemBySequence.Seq); } if (itemBySequence != null && itemBySequence.IsAmount && itemBySequence.Template != null && itemBySequence.Template.type == TItem.TYPE.SPECIAL && itemBySequence.AmountBuf > 0) { TSpecial tSpecial = (TSpecial)itemBySequence.Template; if (tSpecial.IsConsumableBuff) { string func = TItem.FunctionMaskToString(tSpecial.functionMask); consumableDesc = ConsumableManager.Instance.Get(func); if (consumableDesc != null && !consumableDesc.isShooterTool) { consumableDesc = null; } if (consumableDesc != null) { TBuff tBuff = BuffManager.Instance.Get(tSpecial.param); if (tBuff != null) { if (tBuff.IsPoint) { pointBooster += (float)tBuff.PointRatio; } if (tBuff.IsXp) { xpBooster += (float)tBuff.XpRatio; } if (tBuff.IsLuck) { luck += (float)tBuff.Luck; } } } itemBySequence.AmountBuf--; } } } list.Clear(); list = null; string[] usings = MyInfoManager.Instance.GetUsings(); for (int j = 0; j < usings.Length; j++) { TItem tItem = TItemManager.Instance.Get <TItem>(usings[j]); if (tItem != null && tItem.tBuff != null) { pointBooster += (float)tItem.tBuff.PointRatio; xpBooster += (float)tItem.tBuff.XpRatio; luck += (float)tItem.tBuff.Luck; } } if (pointBooster > 0f) { numBuf++; } if (xpBooster > 0f) { numBuf++; } if (luck > 0f) { numBuf++; } Item[] usingItems = MyInfoManager.Instance.GetUsingItems(); for (int k = 0; k < usingItems.Length; k++) { int num = 0; int num2 = 0; num = 10; num2 = usingItems[k].upgradeProps[num].grade; if (num2 > 0 && usingItems[k].Template.upgradeCategory != TItem.UPGRADE_CATEGORY.NONE) { pointBooster += PimpManager.Instance.getValue((int)usingItems[k].Template.upgradeCategory, num, num2 - 1); } num = 9; num2 = usingItems[k].upgradeProps[num].grade; if (num2 > 0 && usingItems[k].Template.upgradeCategory != TItem.UPGRADE_CATEGORY.NONE) { xpBooster += PimpManager.Instance.getValue((int)usingItems[k].Template.upgradeCategory, num, num2 - 1); } num = 12; num2 = usingItems[k].upgradeProps[num].grade; if (num2 > 0 && usingItems[k].Template.upgradeCategory != TItem.UPGRADE_CATEGORY.NONE) { luck += PimpManager.Instance.getValue((int)usingItems[k].Template.upgradeCategory, num, num2 - 1); } } armor = MyInfoManager.Instance.SumArmor(); mainAmmoMax = MyInfoManager.Instance.SumFunctionFactor("main_ammo_inc"); auxAmmoMax = MyInfoManager.Instance.SumFunctionFactor("aux_ammo_inc"); grenadeMax1 = MyInfoManager.Instance.SumFunctionFactor("special_ammo_inc"); grenadeMax2 = MyInfoManager.Instance.SumFunctionFactor("special_ammo_add"); hpCooltime = MyInfoManager.Instance.SumFunctionFactor("hp_cooltime"); dashTimeInc = MyInfoManager.Instance.SumFunctionFactor("dash_time_inc"); respawnTimeDec = MyInfoManager.Instance.SumFunctionFactor("respwan_time_dec"); fallenDamageDec = MyInfoManager.Instance.SumFunctionFactor("fallen_damage_reduce"); if (armor > 0) { numBuf++; } if (mainAmmoMax > 0f) { numBuf++; } if (auxAmmoMax > 0f) { numBuf++; } if (grenadeMax1 > 0f) { numBuf++; } if (grenadeMax2 > 0f) { numBuf++; } if (hpCooltime > 0f) { numBuf++; } if (dashTimeInc > 0f) { numBuf++; } if (respawnTimeDec > 0f) { numBuf++; } if (fallenDamageDec > 0f) { numBuf++; } bufHeight = (float)(numBuf * 15); }
private bool DoBuff(float changeHeight) { pointBooster = 0f; xpBooster = 0f; luck = 0f; if (MyInfoManager.Instance.HaveFunction("premium_account") >= 0) { xpBooster += 10f; pointBooster += 10f; } List <long> list = new List <long>(); for (int i = 0; i < MyInfoManager.Instance.ShooterTools.Length; i++) { ConsumableDesc consumableDesc = null; Item itemBySequence = MyInfoManager.Instance.GetItemBySequence(MyInfoManager.Instance.ShooterTools[i]); if (itemBySequence != null && itemBySequence.IsAmount && itemBySequence.Template != null && itemBySequence.Template.type == TItem.TYPE.SPECIAL && itemBySequence.Amount > 0 && !list.Contains(itemBySequence.Seq)) { itemBySequence.AmountBuf = itemBySequence.Amount; list.Add(itemBySequence.Seq); } if (itemBySequence != null && itemBySequence.IsAmount && itemBySequence.Template != null && itemBySequence.Template.type == TItem.TYPE.SPECIAL && itemBySequence.AmountBuf > 0) { TSpecial tSpecial = (TSpecial)itemBySequence.Template; if (tSpecial.IsConsumableBuff) { string func = TItem.FunctionMaskToString(tSpecial.functionMask); consumableDesc = ConsumableManager.Instance.Get(func); if (consumableDesc != null && !consumableDesc.isShooterTool) { consumableDesc = null; } if (consumableDesc != null) { TBuff tBuff = BuffManager.Instance.Get(tSpecial.param); if (tBuff != null) { if (tBuff.IsPoint) { pointBooster += (float)tBuff.PointRatio; } if (tBuff.IsXp) { xpBooster += (float)tBuff.XpRatio; } if (tBuff.IsLuck) { luck += (float)tBuff.Luck; } } } itemBySequence.AmountBuf--; } } } list.Clear(); list = null; string[] usings = MyInfoManager.Instance.GetUsings(); for (int j = 0; j < usings.Length; j++) { TItem tItem = TItemManager.Instance.Get <TItem>(usings[j]); if (tItem != null && tItem.tBuff != null) { pointBooster += (float)tItem.tBuff.PointRatio; xpBooster += (float)tItem.tBuff.XpRatio; luck += (float)tItem.tBuff.Luck; } } Item[] usingItems = MyInfoManager.Instance.GetUsingItems(); for (int k = 0; k < usingItems.Length; k++) { int num = 0; int num2 = 0; num = 10; num2 = usingItems[k].upgradeProps[num].grade; if (num2 > 0 && usingItems[k].Template.upgradeCategory != TItem.UPGRADE_CATEGORY.NONE) { pointBooster += PimpManager.Instance.getValue((int)usingItems[k].Template.upgradeCategory, num, num2 - 1); } num = 9; num2 = usingItems[k].upgradeProps[num].grade; if (num2 > 0 && usingItems[k].Template.upgradeCategory != TItem.UPGRADE_CATEGORY.NONE) { xpBooster += PimpManager.Instance.getValue((int)usingItems[k].Template.upgradeCategory, num, num2 - 1); } num = 12; num2 = usingItems[k].upgradeProps[num].grade; if (num2 > 0 && usingItems[k].Template.upgradeCategory != TItem.UPGRADE_CATEGORY.NONE) { luck += PimpManager.Instance.getValue((int)usingItems[k].Template.upgradeCategory, num, num2 - 1); } } armor = MyInfoManager.Instance.SumArmor(); mainAmmoMax = MyInfoManager.Instance.SumFunctionFactor("main_ammo_inc"); auxAmmoMax = MyInfoManager.Instance.SumFunctionFactor("aux_ammo_inc"); grenadeMax1 = MyInfoManager.Instance.SumFunctionFactor("special_ammo_inc"); grenadeMax2 = MyInfoManager.Instance.SumFunctionFactor("special_ammo_add"); hpCooltime = MyInfoManager.Instance.SumFunctionFactor("hp_cooltime"); dashTimeInc = MyInfoManager.Instance.SumFunctionFactor("dash_time_inc"); respawnTimeDec = MyInfoManager.Instance.SumFunctionFactor("respwan_time_dec"); fallenDamageDec = MyInfoManager.Instance.SumFunctionFactor("fallen_damage_reduce"); if (pointBooster > 0f || xpBooster > 0f || luck > 0f || armor > 0 || mainAmmoMax > 0f || auxAmmoMax > 0f || grenadeMax1 > 0f || hpCooltime > 0f || grenadeMax2 > 0f || dashTimeInc > 0f || respawnTimeDec > 0f || fallenDamageDec > 0f) { Texture2D icon = BuffManager.Instance.GetBuffDesc(BuffDesc.WHY.ITEM).icon; GUI.Button(new Rect(crdLTBuffIcon.x, crdLTBuffIcon.y - changeHeight, (float)icon.width, (float)icon.height), new GUIContent(icon, "item"), "InvisibleButton"); return(true); } return(false); }
private void DoShooterToolSlots() { string[] array = new string[5] { "K_SHOOTER1", "K_SHOOTER2", "K_SHOOTER3", "K_SHOOTER4", "K_SHOOTER5" }; GUI.Box(crdSlotOutline, string.Empty, "BoxInnerLine"); Rect position = new Rect(crdSlotBtn); GUI.BeginGroup(crdSlotOutline); for (int i = 0; i < MyInfoManager.Instance.ShooterTools.Length; i++) { ConsumableDesc consumableDesc = null; Item itemBySequence = MyInfoManager.Instance.GetItemBySequence(MyInfoManager.Instance.ShooterTools[i]); if (itemBySequence != null && itemBySequence.IsAmount && itemBySequence.Template != null && itemBySequence.Template.type == TItem.TYPE.SPECIAL) { TSpecial tSpecial = (TSpecial)itemBySequence.Template; string func = TItem.FunctionMaskToString(tSpecial.functionMask); consumableDesc = ConsumableManager.Instance.Get(func); if (consumableDesc != null && !consumableDesc.isShooterTool) { consumableDesc = null; } } Texture2D image = null; if (itemBySequence != null && consumableDesc != null) { image = ((!itemBySequence.EnoughToConsume) ? consumableDesc.disable : consumableDesc.enable); if (tooltip.ItemSeq == ItemSlot2Tooltip(itemBySequence, i)) { if (i < 2) { ltTooltip = new Vector2(rc.x + crdSlotOutline.x + position.x + position.width + 5f, rc.y + crdSlotOutline.y + position.y + 5f); } else { ltTooltip = new Vector2(rc.x + crdSlotOutline.x + position.x - tooltip.size.x - 5f, rc.y + crdSlotOutline.y + position.y + 5f); } } } if (GUI.Button(position, new GUIContent(image, ItemSlot2Tooltip(itemBySequence, i)), "BtnItemFixate")) { curActionSlot = i; if (dragItem != null) { if (dragItem.IsShooterSlotAble) { CSNetManager.Instance.Sock.SendCS_SET_SHOOTER_TOOL_REQ((sbyte)i, dragItem.Seq); } ResetDragItem(); } } LabelUtil.TextOut(new Vector2(position.x + 5f, position.y + 5f), custom_inputs.Instance.GetKeyCodeName(array[i]), "MiniLabel", GlobalVars.Instance.txtMainColor, new Color(0f, 0f, 0f, 0f), TextAnchor.UpperLeft); if (curActionSlot == i) { GUI.Box(position, string.Empty, "BtnItemFixateF"); } position.x += crdSlotBtn.width + 8f; } GUI.EndGroup(); }