// 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;
    }
Пример #2
0
        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();
        }
Пример #3
0
        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();
        }