public override void OnEnemyDamaged(Enemy enemy, ref int damage, ref byte type) { var currentFloor = (double)LocalGame.GetCurrentFloor(); var factor = 1 - 0.15 * currentFloor; damage = (int)Math.Floor(damage * factor); }
public override void OnPlayerDamaged(ref int damage, ref byte type) { // disable this code for now if (!grant) { grant = true; /* * alex.SpawnOn(LocalGame, LocalPlayer); * GordonFreeman.SpawnOn(LocalGame, LocalPlayer); * InstaRepair.SpawnOn(LocalGame, LocalPlayer); * Weapon.SpawnOn(LocalGame, LocalPlayer); * WeaponOne.SpawnOn(LocalGame, LocalPlayer); * Hattus.SpawnOn(LocalGame, LocalPlayer); */ } return; damage = (3 * LocalGame.GetCurrentFloor()) * damage; //e.g 300%, 600%, 900%... dmg Type gameType = Utils.GetGameType("SoG.Game1"); dynamic game = LocalGame.GetUnderlayingGame(); dynamic player = game.xLocalPlayer; var function = ((TypeInfo)gameType).GetDeclaredMethods("_EntityMaster_AddItem").First(); //function.Invoke(LocalGame.GetUnderlayingGame(), new[] { GetModItemFromString("BagKnight"), player.xEntity.xTransform.v2Pos, player.xEntity.xRenderComponent.fVirtualHeight, player.xEntity.xCollisionComponent.ibitCurrentColliderLayer, Vector2.Zero }); //function.Invoke(LocalGame.GetUnderlayingGame(), new[] { GetModItemFromString("BananaMan"), player.xEntity.xTransform.v2Pos, player.xEntity.xRenderComponent.fVirtualHeight, player.xEntity.xCollisionComponent.ibitCurrentColliderLayer, Vector2.Zero }); }
public override void OnPlayerKilled() { if (LocalGame.GetCurrentFloor() < 5) { Dialogue.AddDialogueLineTo(LocalGame, "I am not going to lie, but it's not looking good..."); } if (LocalGame.GetCurrentFloor() >= 5) { Dialogue.AddDialogueLineTo(LocalGame, "Looking but I am sorry to tell you, it's floor 10 now....just joking" + Environment.NewLine + "Grab your reward!"); questFinished = true; } }