// Alter stats to the appropriate Paradigm, keep in mind to also change transition values IE. Changing modes while sprinting. public void Change(NewMode newMode, PlayerMovement stats) { currentMode = newMode; currentModeName.text = currentMode.paradigm.ToString(); if (currentMode == AttackMode) { currentModeName.color = Color.red; } else if (currentMode == NeutralMode) { currentModeName.color = Color.green; } else if (currentMode == DefenceMode) { currentModeName.color = Color.blue; } // NeutralMod/Beginning values needed to appropriately scale values. stats.InitialValues(); stats.armorAmount *= newMode.armorMultiplier; stats.attackDamage *= newMode.attackMultiplier; stats.jumpForce *= newMode.jumpMultiplier; stats.moveSpeed *= newMode.moveSpeedMultipler; }
public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights) { int Modes = Item.GetBaseItem().Modes - 1; if (!HasRights) { return; } else if (Modes <= 0) { Item.UpdateState(false, true); } if (!int.TryParse(Item.ExtraData, out int CurrentMode)) { } int NewMode; if (CurrentMode <= 0) { NewMode = 1; } else if (CurrentMode >= Modes) { NewMode = 0; } else { NewMode = CurrentMode + 1; } if (NewMode == 0) { if (!Item.GetRoom().GetGameMap().ItemCanBePlacedHere(Item.GetX, Item.GetY)) { return; } } if (Item.GetRoom() == null || Item.GetRoom().GetGameMap() == null || Item.GetRoom().GetGameMap().SquareHasUsers(Item.GetX, Item.GetY)) { return; } Item.ExtraData = NewMode.ToString(); Item.UpdateState(); Item.RegenerateBlock(NewMode.ToString(), Item.GetRoom().GetGameMap()); Item.GetRoom().GetGameMap().UpdateMapForItem(Item); Item.GetRoom().GetWired().TriggerEvent(WiredBoxType.TriggerStateChanges, Session.GetHabbo(), Item); //Item.GetRoom().GenerateMaps(); }
public void OnWiredTrigger(Item Item) { int Modes = Item.GetBaseItem().Modes - 1; if (Modes <= 0) { Item.UpdateState(false, true); } if (!int.TryParse(Item.ExtraData, out int CurrentMode)) { } int NewMode; if (CurrentMode <= 0) { NewMode = 1; } else if (CurrentMode >= Modes) { NewMode = 0; } else { NewMode = CurrentMode + 1; } if (NewMode == 0) { if (!Item.GetRoom().GetGameMap().ItemCanBePlacedHere(Item.GetX, Item.GetY)) { return; } } if (Item.GetRoom() == null || Item.GetRoom().GetGameMap() == null || Item.GetRoom().GetGameMap().SquareHasUsers(Item.GetX, Item.GetY)) { return; } Item.ExtraData = NewMode.ToString(); Item.UpdateState(); Item.GetRoom().GetGameMap().UpdateMapForItem(Item); //Item.GetRoom().GenerateMaps(); }