protected void SetDefaultReactions() { // Seeds SetReaction(InteractionType.EmberSeed, SenderReactions.Intercept); SetReaction(InteractionType.ScentSeed, SenderReactions.Intercept, Reactions.Damage); SetReaction(InteractionType.PegasusSeed, SenderReactions.Intercept, Reactions.Stun); SetReaction(InteractionType.GaleSeed, SenderReactions.Intercept); SetReaction(InteractionType.MysterySeed, Reactions.MysterySeed); // Projectiles SetReaction(InteractionType.Arrow, SenderReactions.Destroy, Reactions.Damage); SetReaction(InteractionType.SwordBeam, SenderReactions.Destroy, Reactions.Damage); SetReaction(InteractionType.RodFire, SenderReactions.Intercept); SetReaction(InteractionType.Boomerang, SenderReactions.Intercept, Reactions.Stun); SetReaction(InteractionType.SwitchHook, Reactions.SwitchHook); // Environment SetReaction(InteractionType.Fire, Reactions.Burn); SetReaction(InteractionType.Gale, Reactions.Gale); SetReaction(InteractionType.BombExplosion, Reactions.Damage); SetReaction(InteractionType.ThrownObject, Reactions.Damage); SetReaction(InteractionType.MineCart, Reactions.SoftKill); SetReaction(InteractionType.Block, Reactions.Damage); // Tools SetReaction(InteractionType.Sword, SenderReactions.Intercept, Reactions.DamageByLevel(1, 2, 3)); SetReaction(InteractionType.SwordSpin, Reactions.Damage2); SetReaction(InteractionType.BiggoronSword, Reactions.Damage3); SetReaction(InteractionType.Shield, SenderReactions.Bump, Reactions.Bump); SetReaction(InteractionType.Shovel, Reactions.Bump); SetReaction(InteractionType.Parry, Reactions.Parry); // Player SetReaction(InteractionType.Pickup, Reactions.None); SetReaction(InteractionType.ButtonAction, Reactions.None); SetReaction(InteractionType.PlayerContact, OnTouchPlayer); }
public MonsterOctorok() { // General. MaxHealth = 1; ContactDamage = 1; color = MonsterColor.Blue; animationMove = GameData.ANIM_MONSTER_OCTOROK; // Movement. moveSpeed = 0.5f; changeDirectionsOnCollide = true; syncAnimationWithDirection = true; stopTime.Set(30, 60); moveTime.Set(30, 50); // Projectiles. projectileType = typeof(OctorokRock); shootType = ShootType.OnStop; aimType = AimType.Forward; shootSpeed = 2.0f; projectileShootOdds = 5; // 1 in 5 chance to shoot after stopping. shootPauseDuration = 30; // Interactions. SetReaction(InteractionType.Sword, Reactions.DamageByLevel(1, 2, 2)); SetReaction(InteractionType.BiggoronSword, Reactions.Damage2); /* * // DEBUG MONSTER SETTINGS. * stopTime.Set(0, 0); * moveTime.Set(30, 80); * syncAnimationWithDirection = true; * isMovementDirectionBased = true; * numMoveAngles = 16; * * shootType = ShootType.None; * * Physics.ReboundRoomEdge = true; * Physics.ReboundSolid = true; * Physics.Bounces = true; * * shootType = ShootType.WhileMoving; * projectileShootOdds = 60; // once every 60 seconds. * aimType = AimType.Forward; * aimType = AimType.FaceRandom; * * Graphics.DrawOffset = new Point2I(-8, -14) + new Point2I(0, 3); * centerOffset = new Point2I(0, -6) + new Point2I(0, 3); */ }
public MonsterLynel() { // General. MaxHealth = 4; ContactDamage = 4; color = MonsterColor.Red; // Movement. moveSpeed = 0.5f; changeDirectionsOnCollide = true; stopTime.Set(0, 0); moveTime.Set(40, 80); // Charging. /*chargeType = ChargeType.ChargeForDuration; * chargeSpeed = 1.25f; * chargeAcceleration = 0.1f; * chargeMinAlignment = 5; * chargeDuration.Set(100, 160);*/ // Projectiles. projectileType = typeof(SpearProjectile); shootType = ShootType.OnStop; aimType = AimType.FacePlayer; shootSpeed = 3.0f; projectileShootOdds = 10; shootPauseDuration = 15; // Physics. Physics.Bounces = true; // This is here for when the monster is digged up or dropped from the ceiling. // Graphics. animationMove = GameData.ANIM_MONSTER_LYNEL; syncAnimationWithDirection = true; // Interactions. SetReaction(InteractionType.Sword, Reactions.DamageByLevel(1, 2, 2)); SetReaction(InteractionType.BiggoronSword, Reactions.Damage2); SetReaction(InteractionType.SwitchHook, SenderReactions.Intercept, Reactions.ClingEffect); SetReaction(InteractionType.GaleSeed, Reactions.None); }