public static void SendReturnMessage(Abilities.AbilityMain.ID id, Abilities.AbilityMain.RETURN ret) { string message = null; switch (ret) { case (Abilities.AbilityMain.RETURN.FAIL_COOLDOWN): message = "Not Ready!"; break; case (Abilities.AbilityMain.RETURN.FAIL_LINE_OF_SIGHT): message = "Line of Sight!"; break; case (Abilities.AbilityMain.RETURN.FAIL_MANA): message = "Not Enough Mana!"; break; case (Abilities.AbilityMain.RETURN.FAIL_NOT_IMPLEMENTRD): message = "Not Yet Implemented!"; break; case (Abilities.AbilityMain.RETURN.FAIL_STATUS): message = "Cannot Be Used Right Now!"; break; case (Abilities.AbilityMain.RETURN.FAIL_REQUIREMENTS): message = "Requirements Not Met!"; break; default: //no message break; } if (message != null) { if (ExperienceAndClasses.localMyPlayer.ability_message_overhead) { CombatText.NewText(Main.LocalPlayer.getRect(), ExperienceAndClasses.MESSAGE_COLOUR_RED, message); } else { Main.NewText(Abilities.AbilityMain.AbilityLookup[(int)id].GetName() + ": " + message, ExperienceAndClasses.MESSAGE_COLOUR_RED); } } }
public override void ProcessTriggers(TriggersSet triggersSet) //CLIENT-SIDE ONLY { //prevent weapon use after if (triggersSet.MouseLeft && itemUsePrevented && ((player.HeldItem.damage > 0) || player.HeldItem.useStyle == 1 || player.HeldItem.useStyle == 3 || player.HeldItem.useStyle == 5)) { player.controlUseItem = false; } //track afk if (Main.netMode != 2 && (triggersSet.MouseLeft || triggersSet.MouseMiddle || triggersSet.MouseRight || triggersSet.Jump || triggersSet.Up || triggersSet.Down || triggersSet.Left || triggersSet.Right)) { afkTime = DateTime.Now; if (afk) { if (Main.netMode == 0) { Main.NewText("You are no longer AFK.", ExperienceAndClasses.MESSAGE_COLOUR_RED); } afk = false; Methods.PacketSender.ClientUnAFK(mod); } } //reset which errors can display when an ability key is pressed for (int i = 0; i < ExperienceAndClasses.NUMBER_OF_ABILITY_SLOTS; i++) { if (ExperienceAndClasses.HOTKEY_ABILITY[i].JustPressed) { latestAbilityFail = Abilities.AbilityMain.RETURN.UNUSED; showFailMessages = true; break; } } //which ability int slot = -1; for (int i = 0; i < ExperienceAndClasses.NUMBER_OF_ABILITY_SLOTS; i++) { if (ExperienceAndClasses.HOTKEY_ABILITY[i].Current) { slot = i; break; } } //do ability, if any if (slot >= 0) { Abilities.AbilityMain.ID id = selectedActiveAbilities[slot]; if (id != Abilities.AbilityMain.ID.UNDEFINED) { Abilities.AbilityMain.RETURN ret = Abilities.AbilityMain.AbilityLookup[(int)id].Use((byte)effectiveLevel, ExperienceAndClasses.HOTKEY_ALTERNATE_EFFECT.Current); if (ret == Abilities.AbilityMain.RETURN.SUCCESS) { showFailMessages = false; } if (showFailMessages && (ret != latestAbilityFail)) { latestAbilityFail = ret; SendReturnMessage(id, latestAbilityFail); } } } else if (ExperienceAndClasses.HOTKEY_ALTERNATE_EFFECT.JustPressed) { Abilities.AbilityMain.Cleric_Active_Sanctuary.TryWarp(); } }