public override void Update(Player player, ref int buffIndex) { ExamplePlayer p = player.GetModPlayer <ExamplePlayer>(); // We use blockyAccessoryPrevious here instead of blockyAccessory because UpdateBuffs happens before UpdateEquips but after ResetEffects. if (p.HoodKeyPressed == true && p.ShamanAccessoryPrevious) { p.ShamanPower = true; } else { player.DelBuff(buffIndex); buffIndex--; } }
static void Main(string[] args) { while (true) { Console.Clear(); var mediator = new Mediator(); var player1 = new ExamplePlayer(Color.Red, 600, 1); var player2 = new ExamplePlayer(Color.Yellow, 600, 1); mediator.AddPlayer(player1); mediator.AddPlayer(player2); mediator.StartGame(); Console.ReadLine(); } }
public override void Update(Player player, ref int buffIndex) { player.buffTime[buffIndex] = 18000; ExamplePlayer modPlayer = (ExamplePlayer)player.GetModPlayer(mod, "ExamplePlayer"); modPlayer.examplePet = true; bool petProjectileNotSpawned = true; if (player.ownedProjectileCounts[mod.ProjectileType("ExamplePet")] > 0) { petProjectileNotSpawned = false; } if (petProjectileNotSpawned && player.whoAmI == Main.myPlayer) { Projectile.NewProjectile(player.position.X + (float)(player.width / 2), player.position.Y + (float)(player.height / 2), 0f, 0f, mod.ProjectileType("ExamplePet"), 0, 0f, player.whoAmI, 0f, 0f); } }
public override void AI() { Player player = Main.player[projectile.owner]; ExamplePlayer modPlayer = player.GetModPlayer <ExamplePlayer>(); if (player.dead) { modPlayer.KaozuWisp = false; } if (modPlayer.KaozuWisp) { ; } { projectile.timeLeft = 2; } }
public override void AI() { if (projectile.localAI[0] == 0f) { if (projectile.ai[0] == 1) { projectile.coldDamage = true; } if (projectile.ai[0] == 3) { projectile.damage = (int)(1.2f * projectile.damage); } projectile.Name = GetName(); projectile.localAI[0] = 1f; } Player player = Main.player[projectile.owner]; if (!player.active || player.dead) { projectile.Kill(); return; } ExamplePlayer modPlayer = player.GetModPlayer <ExamplePlayer>(); if (modPlayer.elementShields <= projectile.ai[0]) { projectile.Kill(); return; } projectile.timeLeft = 2; projectile.Center = player.Center; if (projectile.ai[0] > 0f) { float offset = (projectile.ai[0] - 1f) / (modPlayer.elementShields - 1); float rotation = modPlayer.elementShieldPos / 300f + offset; rotation = rotation % 1f * 2f * (float)Math.PI; projectile.position += 160f * new Vector2((float)Math.Cos(rotation), (float)Math.Sin(rotation)); projectile.rotation = -rotation; } LightColor(); projectile.frame = (int)projectile.ai[0]; projectile.ai[1] += 1f; projectile.ai[1] %= 300f; projectile.alpha = 75 + (int)(50 * Math.Sin(projectile.ai[1] * 2f * (float)Math.PI / 300f)); }
public override void Update(Player player, ref int buffIndex) { ExamplePlayer p = player.GetModPlayer <ExamplePlayer>(); // We use blockyAccessoryPrevious here instead of blockyAccessory because UpdateBuffs happens before UpdateEquips but after ResetEffects. if (p.HoodKeyPressed == true && p.MageAccessoryPrevious) { p.MagePower = true; } else { player.DelBuff(buffIndex); buffIndex--; } if (p.Mage == true && p.HoodKeyPressed == false) { player.manaRegenBonus += 5; } if (p.Mage == true && p.HoodKeyPressed == true) { if (player.manaRegenBuff && player.manaRegenDelay > 20) { player.manaRegenDelay = 20; } if (player.manaRegenDelay <= 0) { player.manaRegenDelay = 0; player.manaRegen = player.statManaMax2 / 7 + 1 + player.manaRegenBonus; if ((player.velocity.X == 0f && player.velocity.Y == 0f) || player.grappling[0] >= 0 || player.manaRegenBuff) { player.manaRegen += player.statManaMax2 / 2; } float num2 = (float)player.statMana / (float)player.statManaMax2 * 0.8f + 0.2f; if (player.manaRegenBuff) { num2 = 1f; } player.manaRegen = (int)((double)((float)player.manaRegen * num2) * 1.15); } else { player.manaRegen = 0; } } }
public override void Update(Player player, ref int buffIndex) { ExamplePlayer examplePlayer = player.GetModPlayer <ExamplePlayer>(mod); if (player.ownedProjectileCounts[mod.ProjectileType("Plantemini")] > 0) { examplePlayer.summonPlantemini = true; } if (!examplePlayer.summonPlantemini) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } }
public override void Update(Player player, ref int buffIndex) { ExamplePlayer modPlayer = player.GetModPlayer <ExamplePlayer>(mod); if (player.ownedProjectileCounts[mod.ProjectileType("PurityWisp")] > 0) { modPlayer.purityMinion = true; } if (!modPlayer.purityMinion) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } }
public IEnumerator BasicPickupToggling() { TestUtil.TestScene scene = new TestUtil.TestScene("ExamplePlayerTest"); yield return(scene.LoadAndWait()); ExamplePlayer player = scene.FindRootComponent <ExamplePlayer>("Player"); Pill pill = scene.FindRootComponent <Pill>("Pill"); TestPlayerInput input = scene.FindRootComponent <TestPlayerInput>("Player"); Assert.IsFalse(pill.IsPickedUp()); input.TriggerActionForNextFrame(); yield return(null); Assert.IsTrue(pill.IsPickedUp()); input.TriggerActionForNextFrame(); yield return(null); Assert.IsFalse(pill.IsPickedUp()); }
public override void Update(Player player, ref int buffIndex) { ExamplePlayer modPlayer = player.GetModPlayer <ExamplePlayer>(); if (player.ownedProjectileCounts[ModContent.ProjectileType <Projectiles.Minions.ExampleHoveringMinion>()] > 0) //if the ExampleHoveringMinion projectile is owned by the player { modPlayer.exampleHoveringMinion = true; } if (!modPlayer.exampleHoveringMinion) { player.DelBuff(buffIndex); //if the exampleHoveringMinion was despawned, the buff is canceled buffIndex--; } else { player.buffTime[buffIndex] = 18000; //keeps the buff active while the minion exists } }
public override bool UseItem(Item item, Player player) { if (item.healLife > 0) { ExamplePlayer modPlayer = (ExamplePlayer)player.GetModPlayer(mod, "ExamplePlayer"); if (modPlayer.badHeal) { int heal = item.healLife; int damage = player.statLifeMax2 - player.statLife; if (heal > damage) { heal = damage; } if (heal > 0) { player.AddBuff(mod.BuffType("Undead2"), 2 * heal, false); } } } return(base.UseItem(item, player)); }
public override void AI() { projectile.localAI[0] += 1f; if (!Main.dedServ && projectile.localAI[0] >= 180f && projectile.localAI[0] < 480f && Main.rand.Next(10) == 0) { ExamplePlayer modPlayer = Main.player[Main.myPlayer].GetModPlayer <ExamplePlayer>(mod); if (modPlayer.heroLives > 0) { Main.PlaySound(2, -1, -1, 14); } else { Main.PlaySound(2, (int)projectile.position.X, (int)projectile.position.Y, 14); } } projectile.position = NextPosition(); if (projectile.localAI[0] >= 500f) { projectile.Kill(); } }
public override void AI() { projectile.localAI[0] += 1f; if (!Main.dedServ && projectile.localAI[0] >= 180f && projectile.localAI[0] < 480f && Main.rand.Next(10) == 0) { ExamplePlayer modPlayer = Main.LocalPlayer.GetModPlayer <ExamplePlayer>(mod); if (modPlayer.heroLives > 0) { Main.PlaySound(SoundID.Item14); } else { Main.PlaySound(SoundID.Item14, projectile.position); } } projectile.position = NextPosition(); if (projectile.localAI[0] >= 500f) { projectile.Kill(); } }
public void SpawnPlayer(Vector3 position, Quaternion rotation) { if (Player == null) { Debug.LogError("Missing Player to instantiate"); return; } if (Character == null) { Debug.LogError("Missing Character to instantiate"); return; } GameObject playerObject = Instantiate(Player); ExamplePlayer examplePlayer = playerObject.GetComponent <ExamplePlayer>(); GameObject characterObject = Instantiate(Character, position, rotation); ExampleCharacterController exampleCharacterController = characterObject.GetComponent <ExampleCharacterController>(); examplePlayer.Character = exampleCharacterController; examplePlayer.CharacterCamera = Camera.main.GetComponent <ExampleCharacterCamera>(); }
public override void Update() { timer += Time.deltaTime; if (timer > 0.2f) { timer = 0; if (bodyCount < bodyMax) { BoxSpawn(); } if (bodyForseCount < bodyForseMax) { BodyForseSpawn(); } } frameCount++; if (frameCount % 300 == 0) { forseTarget = new GalaxyVector3(GRand.NextInt(0, 100), GRand.NextInt(0, 100), GRand.NextInt(0, 100)); } if (player == null) { player = (ExamplePlayer)entities.list.Where(x => x.prefabName == "Player").FirstOrDefault(); if (player != null) { debug = new NetEntitys.ExamplePlayer(this); debug.Init(); debug.physics.Deactivate(); } return; } RayTest(); }
public override void AI() { if (timer < 0) { projectile.alpha = -timer * 3; } else { projectile.alpha = 0; projectile.hostile = true; } if (projectile.localAI[0] != 255f) { Player player = Main.player[(int)projectile.localAI[0]]; if (!player.active || player.dead) { projectile.localAI[0] = 255f; } } Vector2 center = new Vector2(projectile.ai[0], projectile.ai[1]); if (timer < 0 && projectile.localAI[0] != 255f) { Vector2 newCenter = Main.player[(int)projectile.localAI[0]].Center; projectile.position += newCenter - center; projectile.ai[0] = newCenter.X; projectile.ai[1] = newCenter.Y; center = newCenter; } float rotateSpeed = 2f * (float)Math.PI / 60f / 4f * projectile.localAI[1]; if (timer < maxTimer) { projectile.Center = projectile.Center.RotatedBy(rotateSpeed, center); } else { Vector2 offset = projectile.Center - center; offset.Normalize(); offset *= radius * ((float)strikeTime + maxTimer - timer) / (float)strikeTime; projectile.Center = center + offset; } if (timer == maxTimer) { ExamplePlayer modPlayer = Main.LocalPlayer.GetModPlayer <ExamplePlayer>(); if (modPlayer.heroLives > 0) { Main.PlaySound(SoundID.Item12); } else { Main.PlaySound(SoundID.Item12, projectile.position); } projectile.hostile = true; } if (timer >= maxTimer + strikeTime) { projectile.Kill(); } timer++; projectile.rotation += rotateSpeed * -5f * projectile.localAI[1]; projectile.spriteDirection = projectile.localAI[1] < 0 ? -1 : 1; if (projectile.frame < 4) { projectile.frameCounter++; if (projectile.frameCounter >= 8) { projectile.frameCounter = 0; projectile.frame++; projectile.frame %= 4; } } }
public override void Touched(ExamplePlayer player) { player.Damage(1); base.Touched(player); }
public override void AI() { Player player = Main.player[projectile.owner]; ExamplePlayer modPlayer = player.GetModPlayer <ExamplePlayer>(); if (!player.active) { projectile.active = false; return; } if (player.dead) { modPlayer.exampleLightPet = false; } if (modPlayer.exampleLightPet) { projectile.timeLeft = 2; } projectile.ai[1]++; if (projectile.ai[1] > 1000 && (int)projectile.ai[0] % 100 == 0) { for (int i = 0; i < Main.maxNPCs; i++) { if (Main.npc[i].active && !Main.npc[i].friendly && player.Distance(Main.npc[i].Center) < rangeHypoteneus) { Vector2 vectorToEnemy = Main.npc[i].Center - projectile.Center; projectile.velocity += 10f * Vector2.Normalize(vectorToEnemy); projectile.ai[1] = 0f; Main.PlaySound(SoundLoader.customSoundType, -1, -1, mod.GetSoundSlot(SoundType.Custom, "Sounds/Custom/WatchOut")); break; } } } projectile.rotation += projectile.velocity.X / 20f; Lighting.AddLight(projectile.Center, (255 - projectile.alpha) * 0.9f / 255f, (255 - projectile.alpha) * 0.1f / 255f, (255 - projectile.alpha) * 0.3f / 255f); if (projectile.velocity.Length() > 1f) { projectile.velocity *= .98f; } if (projectile.velocity.Length() == 0) { projectile.velocity = Vector2.UnitX.RotatedBy(Main.rand.NextFloat() * Math.PI * 2); projectile.velocity *= 2f; } projectile.ai[0]++; if (projectile.ai[0] < fadeInTicks) { projectile.alpha = (int)(255 - 255 * projectile.ai[0] / fadeInTicks); } else if (projectile.ai[0] < fadeInTicks + fullBrightTicks) { projectile.alpha = 0; if (Main.rand.NextBool(6)) { int num145 = Dust.NewDust(projectile.position, projectile.width, projectile.height, 73, 0f, 0f, 200, default(Color), 0.8f); Main.dust[num145].velocity *= 0.3f; } } else if (projectile.ai[0] < fadeInTicks + fullBrightTicks + fadeOutTicks) { projectile.alpha = (int)(255 * (projectile.ai[0] - fadeInTicks - fullBrightTicks) / fadeOutTicks); } else { projectile.Center = new Vector2(Main.rand.Next((int)player.Center.X - range, (int)player.Center.X + range), Main.rand.Next((int)player.Center.Y - range, (int)player.Center.Y + range)); projectile.ai[0] = 0; Vector2 vectorToPlayer = player.Center - projectile.Center; projectile.velocity = 2f * Vector2.Normalize(vectorToPlayer); } if (Vector2.Distance(player.Center, projectile.Center) > rangeHypoteneus) { projectile.Center = new Vector2(Main.rand.Next((int)player.Center.X - range, (int)player.Center.X + range), Main.rand.Next((int)player.Center.Y - range, (int)player.Center.Y + range)); projectile.ai[0] = 0; Vector2 vectorToPlayer = player.Center - projectile.Center; projectile.velocity += 2f * Vector2.Normalize(vectorToPlayer); } if ((int)projectile.ai[0] % 100 == 0) { projectile.velocity = projectile.velocity.RotatedByRandom(MathHelper.ToRadians(90)); } }
public override void Update(Player player, ref int buffIndex) { ExamplePlayer p = player.GetModPlayer <ExamplePlayer>(); //Important line because we can use it to get stuff from the ExamplePlayer class p.eFlamesImbue = true; //this sets the bool in ExamplePlayer that detects if you have the imbue buff to true. }
public virtual void Touched(ExamplePlayer player) { Destroy(gameObject); }
//////////////////////////////////////////// //Hint Mechanism //This allows the factory to serve up a new //hint set for the player to configure public override CDLLHints getHints() { return(ExamplePlayer.getHints()); }
public void Hoods(NPC n) { ExamplePlayer p = Main.LocalPlayer.GetModPlayer <ExamplePlayer>(mod); int effectLength = Main.rand.Next(300, 600); if (p.pyro == true && p.HoodKeyPressed == false) { n.AddBuff(BuffID.OnFire, effectLength); } if (p.pyro == true && p.HoodKeyPressed == true) { n.AddBuff(mod.BuffType("Hellfire"), effectLength); } if (p.dPyro == true && p.HoodKeyPressed == false) { n.AddBuff(BuffID.CursedInferno, effectLength); } if (p.dPyro == true && p.HoodKeyPressed == true) { n.AddBuff(mod.BuffType("CursedFire"), effectLength); } if (p.Transmuter == true && p.HoodKeyPressed == false) { n.AddBuff(BuffID.Midas, effectLength); } if (p.Transmuter == true && p.HoodKeyPressed == true) { n.AddBuff(mod.BuffType("GildedCurse"), 60); } if (p.Invoker == true && p.HoodKeyPressed == false) { n.AddBuff(BuffID.Ichor, effectLength); } if (p.Invoker == true && p.HoodKeyPressed == true) { n.AddBuff(mod.BuffType("IchorUproar"), effectLength); } if (p.Technomancer == true && p.HoodKeyPressed == false) { n.AddBuff(BuffID.Confused, effectLength); } if (p.Technomancer == true && p.HoodKeyPressed == true) { Random random = new Random(); int ran1 = random.Next(-10, 10); int ran2 = random.Next(1, 6); Projectile.NewProjectile(n.position.X, n.position.Y, ran1, ran2, mod.ProjectileType("NaniteProjectile"), 15, projectile.knockBack, projectile.owner); //Creates a new Projectile } if (p.Party == true && p.HoodKeyPressed == false) { Projectile.NewProjectile(n.position.X, n.position.Y, 0, 0, 289, 0, 8, projectile.owner); //Creates a new Projectile } if (p.Party == true && p.HoodKeyPressed == true) { n.AddBuff(mod.BuffType("PartyBuff"), effectLength); //Projectile.NewProjectile(n.position.X, n.position.Y, 0, 0, 289, 0, 8, projectile.owner); //Creates a new Projectile } if (p.Shaman == true && p.HoodKeyPressed == false) { n.AddBuff(BuffID.Poisoned, effectLength); } if (p.Shaman == true && p.HoodKeyPressed == true) { n.AddBuff(mod.BuffType("PenetratingPoison"), effectLength); } if (p.WitchDoctor == true && p.HoodKeyPressed == false) { n.AddBuff(BuffID.Venom, effectLength); } if (p.WitchDoctor == true && p.HoodKeyPressed == true) { Random random = new Random(); int ran1 = random.Next(0, 5); if (ran1 == 0) { n.AddBuff(BuffID.Venom, effectLength); } if (ran1 == 1) { n.AddBuff(BuffID.Confused, effectLength); } if (ran1 == 2) { n.AddBuff(BuffID.ShadowFlame, effectLength); } if (ran1 == 3 || ran1 == 4) { n.AddBuff(BuffID.DryadsWardDebuff, effectLength); } } }