public override void ModifyHitNPC(Item item, Player player, NPC target, ref int damage, ref float knockBack, ref bool crit) { if (SuperBees(player) && BeeItem(item)) { damage = (int)(damage * 2f); } if (crit && player.armor[0].type == mod.ItemType("HiddenShooterHood") && player.armor[1].type == mod.ItemType("HiddenShooterCoat") && player.armor[2].type == mod.ItemType("HiddenShooterPants")) { damage = (int)(damage * 1.5f); } PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); if (crit && modPlayer.activeMark == 2 && modPlayer.markActivated) { damage = (int)(damage * 2f); } if (player.armor[0].type == ItemID.GladiatorHelmet && player.armor[1].type == ItemID.GladiatorBreastplate && player.armor[2].type == ItemID.GladiatorLeggings && (item.type == ItemID.Javelin || item.type == ItemID.BoneJavelin)) { target.AddBuff(BuffID.Slow, 300, true); } if (target.FindBuffIndex(mod.BuffType("Virus")) != -1) { damage = (int)(damage * 1.2f); } }
public override void UpdateInventory(Player player) { PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); string weapType = "random"; if (modPlayer.damageType == 0) { weapType = "melee"; } else if (modPlayer.damageType == 1) { weapType = "magic"; } else if (modPlayer.damageType == 2) { weapType = "ranged"; } else if (modPlayer.damageType == 3) { weapType = "summon"; } else if (modPlayer.damageType == 4) { weapType = "throwing"; } Tooltip.SetDefault("Right Click to open\n" + "Currently holding a " + weapType + " item type"); }
public override void ModifyHitNPC(Player player, NPC target, ref int damage, ref float knockBack, ref bool crit) { PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); if (modPlayer.markActivated) { damage *= 2; } }
public override bool UseItem(Item item, Player player) { if ((item.potion && item.healLife > 0) || (item.type == ItemID.LifeCrystal && player.name == "Tester")) { PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); modPlayer.markFrames = 0; modPlayer.markActivated = true; } return(false); }
public override void OpenBossBag(Player player) { player.TryGettingDevArmor(); PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); int wep = -1; if (modPlayer.damageType == 0) { wep = mod.ItemType("BlinkBlade"); } else if (modPlayer.damageType == 1) { wep = mod.ItemType("TechSmite"); } else if (modPlayer.damageType == 2) { wep = mod.ItemType("BitCannon"); } else if (modPlayer.damageType == 3) { wep = mod.ItemType("CyberStaff"); } else if (modPlayer.damageType == 4) { wep = mod.ItemType("CyberCardA"); } else { switch (Main.rand.Next(0, 5)) { case 0: wep = mod.ItemType("BlinkBlade"); break; case 1: wep = mod.ItemType("TechSmite"); break; case 2: wep = mod.ItemType("BitCannon"); break; case 3: wep = mod.ItemType("CyberStaff"); break; case 4: wep = mod.ItemType("CyberCardA"); break; } } player.QuickSpawnItem(wep); player.QuickSpawnItem(mod.ItemType("SuspiciousLookingJoystick")); }
public override void RightClick(Player player) { player.QuickSpawnItem(item.type); PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); if (modPlayer.activeMark != markId) { modPlayer.activeMark = markId; modPlayer.markDuration = itemDuration; Main.NewText("<" + player.name + "> just set it mark to " + DisplayName.GetDefault() + ".", 255, 0, 255); } }
public override void ModifyHitNPC(Projectile projectile, NPC target, ref int damage, ref float knockback, ref bool crit, ref int hitDirection) { if ((projectile.type >= 184 && projectile.type <= 188) || projectile.type == 654) { return; } Player player = Main.player[projectile.owner]; if (SuperBees(player) >= 0 && BeeProj(projectile)) { damage = (int)((damage / 2f) * 2f); } if (crit && player.armor[0].type == mod.ItemType("HiddenShooterHood") && player.armor[1].type == mod.ItemType("HiddenShooterCoat") && player.armor[2].type == mod.ItemType("HiddenShooterPants")) { damage = (int)(damage * 1.5f); } if (target.FindBuffIndex(mod.BuffType("Virus")) != -1) { damage = (int)(damage * 1.2f); } PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); if (crit && modPlayer.activeMark == 2 && modPlayer.markActivated) { damage = (int)(damage * 2f); } if (damage > 0 && projectile.thrown && StellarNinja(player)) { if (Main.rand.Next(20) == 0) { modPlayer.stockedTeleports++; } } bool cardBonus2 = false; for (int l = 3; l < 8 + player.extraAccessorySlots; l++) { if (player.armor[l].type == mod.ItemType("TeraCardGlove")) { cardBonus2 = true; break; } } if (cardBonus2 && projectile.Name.Contains("Card")) { if (Main.rand.Next(3) == 0) { crit = true; } } }
public override void AI() { Player player = Main.player[projectile.owner]; PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); if (player.dead) { modPlayer.practicalCube = false; } if (modPlayer.practicalCube) { projectile.timeLeft = 2; } }
public override void CheckActive() { Player player = Main.player[projectile.owner]; PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); if (player.dead) { modPlayer.sfaMinion = false; } if (modPlayer.sfaMinion) { projectile.timeLeft = 2; } }
public override void UpdateInventory(Item item, Player player) { PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); string t = item.Name; if (item.type == ItemID.MasterBait) { if (Main.rand.Next(10) == 0) { item.SetNameOverride("Marina Joyce"); } else { item.SetNameOverride("Master Bait"); } } if ((t.Contains("Card"))) { if (modPlayer.activeMark == 4 && modPlayer.markActivated) { if (item.type != mod.ItemType("CyberCardA")) { item.useTime = 10; item.useAnimation = 10; } else { item.useTime = 8; item.useAnimation = 8; } } else { if (item.type != mod.ItemType("CyberCardA")) { item.useTime = 15; item.useAnimation = 15; } else { item.useTime = 12; item.useAnimation = 12; } } } }
// Use this for initialization void Start() { //Initializes on start up to listen for messages //make sure this game object has both UDPPackIO and OSC script attached stackOfRates = new float[500]; //The scripts that will do the changes playerChanges = GameObject.FindWithTag("PlayerChange").GetComponent <PlayerChanges>(); envChanges = GameObject.FindWithTag("EnvChange").GetComponent <EnvironmentChanges>(); UDPPacketIO udp = GetComponent <UDPPacketIO>(); udp.init(RemoteIP, SendToPort, ListenerPort); handler = GetComponent <Osc>(); handler.init(udp); handler.SetAllMessageHandler(AllMessageHandler); }
public override void NPCLoot() { int hD = GetHighestDamage(); for (int i = 0; i < 256; i++) { Player player = Main.player[i]; if (player.active) { PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); modPlayer.damageType = hD; } } if (!Main.expertMode) { int wep = -1; switch (hD) { case 4: wep = mod.ItemType("CyberCardA"); break; case 0: wep = mod.ItemType("BlinkBlade"); break; case 3: wep = mod.ItemType("CyberStaff"); break; case 1: wep = mod.ItemType("TechSmite"); break; case 2: wep = mod.ItemType("BitCannon"); break; } DropLoot((int)npc.position.X, (int)npc.position.Y, npc.width, npc.height, wep, 1, false, -1, false); } else { int index = DropLoot((int)npc.Center.X, (int)npc.Center.Y, npc.width, npc.height, mod.ItemType("MagicalCubeTreasureBag"), 1, false, -1, false); } }
public override void Update(Player player, ref int buffIndex) { PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); if (GetTotalInvaders(player) > 0) { modPlayer.invaderMinion = true; } if (!modPlayer.invaderMinion) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } }
public override void Update(Player player, ref int buffIndex) { PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); if (player.ownedProjectileCounts[mod.ProjectileType("Creeper")] > 0) { modPlayer.creeperMinion = true; } if (!modPlayer.creeperMinion) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } }
public override bool CanUseItem(Player player) { bool returnValue = base.CanUseItem(player); PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); if (player.altFunctionUse == 2) { if (modPlayer.lastChange <= 0) { int stack = player.inventory[player.selectedItem].stack; player.inventory[player.selectedItem].stack = -1; player.inventory[player.selectedItem].active = false; int num = Item.NewItem((int)player.position.X, (int)player.position.Y, player.width, player.height, mod.ItemType("CyberCardC"), stack, false, 0, false, false); Main.item[num].newAndShiny = false; Main.player[Main.myPlayer].itemTime = 30; returnValue = false; modPlayer.lastChange = 15; } } return(returnValue); }
public override void UpdateInventory(Player player) { PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); if (modPlayer.markActivated && modPlayer.activeMark == markId) { activated = true; modPlayer.markFrames++; if (modPlayer.markFrames <= modPlayer.markDuration) { MarkEffect(player); } else { modPlayer.markActivated = false; modPlayer.markFrames = 0; } } else { activated = false; } }
public override void UpdateArmorSet(Player player) { PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); modPlayer.chameleonMode = true; if (biome.name == "Pacific Place") { player.statDefense += 4; player.thrownDamage += 0.05f; } else if (biome.name == "Space" || biome.name == "Sky") { player.wingTimeMax = (int)(player.wingTimeMax * 1.5f); } else if (biome.name == "Underworld") { player.fireWalk = true; player.lavaMax += 60; } else if (biome.name == "Dungeon") { Lighting.AddLight((int)(player.position.X + (float)(player.width / 2)) / 16, (int)(player.position.Y + (float)(player.height / 2)) / 16, 0.8f, 0.95f, 1f); player.lifeRegen += 3; } else if (biome.name == "Caverns") { Lighting.AddLight((int)(player.position.X + (float)(player.width / 2)) / 16, (int)(player.position.Y + (float)(player.height / 2)) / 16, 0.8f, 0.95f, 1f); } else if (biome.name == "Crimson" || biome.name == "Corruption") { player.lifeRegen += 5; player.thrownCrit += 5; } else if (biome.name == "Hallow") { player.loveStruck = true; player.thrownDamage += 0.1f; } else if (biome.name == "Mushroom") { player.shroomiteStealth = true; player.thrownDamage += ((1f - player.stealth) * 0.3f); player.thrownCrit += (int)(((1f - player.stealth) * 0.1f) * 100f); player.rangedDamage -= ((1f - player.stealth) * 0.6f); player.rangedCrit -= (int)(((1f - player.stealth) * 0.1f) * 100f); } else if (biome.name == "Desert") { player.detectCreature = true; player.noFallDmg = true; } else if (biome.name == "Snow") { player.buffImmune[46] = true; player.buffImmune[47] = true; } else if (biome.name == "Ocean") { player.AddBuff(BuffID.Sonar, 2, true); player.accDivingHelm = true; } else if (biome.name == "Jungle") { player.crystalLeaf = true; player.endurance += 0.05f; player.honey = true; } string bonus = "You instantly adapts to any biome"; player.setBonus = bonus; }
// Use this for initialization void Start() { //Initializes on start up to listen for messages //make sure this game object has both UDPPackIO and OSC script attached stackOfRates = new float[500]; //The scripts that will do the changes playerChanges = GameObject.FindWithTag("PlayerChange").GetComponent<PlayerChanges>(); envChanges = GameObject.FindWithTag("EnvChange").GetComponent<EnvironmentChanges>(); UDPPacketIO udp = GetComponent<UDPPacketIO>(); udp.init(RemoteIP, SendToPort, ListenerPort); handler = GetComponent<Osc>(); handler.init(udp); handler.SetAllMessageHandler(AllMessageHandler); }
// Use this for initialization void Start() { instance = this; attackWhileDown = true; }
public override void AI() { // Check conditions Player player = Main.player[projectile.owner]; PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); if (player.dead) { modPlayer.pacMinion = false; } if (modPlayer.pacMinion) { projectile.timeLeft = 2; } projectile.alpha = 0; projectile.frameCounter++; if (projectile.frameCounter >= 80) { projectile.frameCounter = 0; projectile.frame = (projectile.frame + 1) % 3; } // Pre-definitions int target = -1; float minDistance = 9999f; bool eyesAlive = false; for (int i = 0; i < 200; i++) { NPC npc = Main.npc[i]; if (npc.active && (npc.type == NPCID.MoonLordHead || npc.type == NPCID.MoonLordHand) && !npc.dontTakeDamage) { eyesAlive = true; break; } } for (int i = 0; i < 200; i++) { NPC npc = Main.npc[i]; if (npc.active && !npc.friendly && projectile.Distance(npc.Center) < minDistance && projectile.Distance(npc.Center) < 600f && npc.lifeMax > 5 && !npc.dontTakeDamage) { if (npc.type == NPCID.MoonLordCore && eyesAlive) { continue; } target = i; minDistance = projectile.Distance(npc.Center); } } int thisId = 1; for (int i = 0; i < 256; i++) { Projectile proj = Main.projectile[i]; if (proj.active && proj.type == projectile.type) { if (proj.identity != projectile.identity) { thisId++; } else { break; } } } // AI projectile.velocity = Vector2.Zero; if (target == -1 || projectile.Distance(player.Center) > 800f) { if (projectile.Distance(player.Center) > (float)(200f + ((thisId - 1) * 30f))) { float distanceX = Math.Abs(player.Center.X - projectile.Center.X); float distanceY = Math.Abs(player.Center.Y - projectile.Center.Y); bool xFirst = false; if (distanceX > distanceY) { xFirst = true; } if (xFirst) { CheckX(player.Center); CheckY(player.Center); } else { CheckY(player.Center); CheckX(player.Center); } } if (projectile.velocity != Vector2.Zero) { projectile.rotation = projectile.DirectionTo(projectile.Center + projectile.velocity * 10).ToRotation(); } } else { NPC npc = Main.npc[target]; if (projectile.Distance(npc.Center) > (float)(200f + ((thisId - 1) * 30f))) { float distanceX = Math.Abs(npc.Center.X - projectile.Center.X); float distanceY = Math.Abs(npc.Center.Y - projectile.Center.Y); bool xFirst = false; if (distanceX > distanceY) { xFirst = true; } if (xFirst) { CheckX(npc.Center); CheckY(npc.Center); } else { CheckY(npc.Center); CheckX(npc.Center); } } else { projectile.rotation = projectile.DirectionTo(npc.Center).ToRotation(); if (projectile.frameCounter % 79 == 0 && projectile.frame == 0) { int a2 = Projectile.NewProjectile(npc.Center.X, npc.Center.Y, (projectile.Center.X - npc.Center.X) / 30, (projectile.Center.Y - npc.Center.Y) / 30, mod.ProjectileType("PacPellets"), projectile.damage, 0, 0); } } } }
public override void CheckActive() { Player player = Main.player[projectile.owner]; PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); }
public override void AI() { Player player = Main.player[projectile.owner]; PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges"); if (player.dead) { modPlayer.invaderMinion = false; } if (modPlayer.invaderMinion) { projectile.timeLeft = 2; } projectile.alpha = 0; projectile.frameCounter++; if (projectile.frameCounter >= 80) { projectile.frameCounter = 0; projectile.frame = (projectile.frame + 1) % 2; } projectile.rotation = 0; int target = -1; float minDistance = 9999f; bool eyesAlive = false; for (int i = 0; i < 200; i++) { NPC npc = Main.npc[i]; if (npc.active && (npc.type == NPCID.MoonLordHead || npc.type == NPCID.MoonLordHand) && !npc.dontTakeDamage) { eyesAlive = true; break; } } for (int i = 0; i < 200; i++) { NPC npc = Main.npc[i]; if (npc.active && !npc.friendly && player.Distance(npc.Center) < minDistance && player.Distance(npc.Center) < 500f && npc.lifeMax > 5 && !npc.dontTakeDamage) { if (npc.type == NPCID.MoonLordCore && eyesAlive) { continue; } target = i; minDistance = player.Distance(npc.Center); } } int thisId = 1; for (int i = 0; i < 256; i++) { Projectile proj = Main.projectile[i]; if (proj.active && proj.Name.Contains("Invader")) { if (proj.identity != projectile.identity) { thisId++; } else { break; } } } int invaders = GetTotalInvaders(player); if (target != -1) { NPC npc = Main.npc[target]; if (npc.position.Y - (30 * thisId) < projectile.Center.Y) { projectile.position.Y--; } else if (npc.position.Y - (30 * thisId) > projectile.Center.Y) { projectile.position.Y++; } if (npc.Center.X < projectile.Center.X) { projectile.position.X--; } else if (npc.Center.X > projectile.Center.X) { projectile.position.X++; } if (Math.Abs(projectile.Center.X - npc.Center.X) < 100) { if (projectile.frameCounter % 79 == 0 && projectile.frame == 1) { Attack(); } } } else { thisId--; invaders--; int groupQuantity = (int)Math.Floor((float)invaders / 5f); if (player.Center.X - getFormPosition(thisId, groupQuantity).X < projectile.Center.X) { projectile.position.X--; } else if (player.Center.X - getFormPosition(thisId, groupQuantity).X > projectile.Center.X) { projectile.position.X++; } if (player.Center.Y - getFormPosition(thisId, groupQuantity).Y < projectile.Center.Y) { projectile.position.Y--; } else if (player.Center.Y - getFormPosition(thisId, groupQuantity).Y > projectile.Center.Y) { projectile.position.Y++; } } }