Merge pull request #565 from Olink/general-devel

Fix spawn boss items.
This commit is contained in:
k0rd 2013-10-01 15:14:21 -07:00
commit c29ad54621

View file

@ -3117,112 +3117,90 @@ namespace TShockAPI
private static bool HandleSpawnBoss(GetDataHandlerArgs args) private static bool HandleSpawnBoss(GetDataHandlerArgs args)
{ {
var spawnboss = false; var spawnboss = false;
var invasion = -1; var invasion = -1;
var plr = args.Data.ReadInt32(); var plr = args.Data.ReadInt32();
var Type = args.Data.ReadInt32(); var Type = args.Data.ReadInt32();
spawnboss = (Type == 4 || Type == 13 || (Type == 50 || Type == 125) || (Type == 126 || Type == 134 || (Type == (int) sbyte.MaxValue || Type == 128))); NPC npc = new NPC();
if (!spawnboss) npc.SetDefaults(Type);
{ spawnboss = npc.boss;
switch (Type) if (!spawnboss)
{ {
case -1: switch (Type)
invasion = 1; {
break; case -1:
case -2: invasion = 1;
invasion = 2; break;
break; case -2:
} invasion = 2;
} break;
if (spawnboss && !args.Player.Group.HasPermission(Permissions.summonboss)) }
{ }
args.Player.SendMessage("You don't have permission to summon a boss.", Color.Red); if (spawnboss && !args.Player.Group.HasPermission(Permissions.summonboss))
return true; {
} args.Player.SendMessage("You don't have permission to summon a boss.", Color.Red);
if (invasion != -1 && !args.Player.Group.HasPermission(Permissions.startinvasion)) return true;
{ }
args.Player.SendMessage("You don't have permission to start an invasion.", Color.Red); if (invasion != -1 && !args.Player.Group.HasPermission(Permissions.startinvasion))
return true; {
} args.Player.SendMessage("You don't have permission to start an invasion.", Color.Red);
if (!spawnboss && invasion == -1) return true;
return true; }
if (plr != args.Player.Index) if (!spawnboss && invasion == -1)
return true; return true;
if (plr != args.Player.Index)
return true;
string boss; string boss;
switch (Type) switch (Type)
{ {
case -2: case -2:
boss = "the Snow Legion"; boss = "the Snow Legion";
break; break;
case -1: case -1:
boss = "a Goblin Invasion"; boss = "a Goblin Invasion";
break; break;
case 4: default:
boss = "the Eye of Cthulhu"; boss = String.Format("the {0}", npc.name);
break; break;
case 13: }
boss = "the Eater of Worlds";
break;
case 50:
boss = "the King Slime";
break;
case 125:
boss = "Retinazer";
break;
case 126:
boss = "Spazmatism";
break;
case 134:
boss = "the Destroyer";
break;
case sbyte.MaxValue:
boss = "Skeleton Prime";
break;
case 128:
boss = "Skeleton Prime";
break;
default:
boss = "error";
break;
}
TShock.Utils.SendLogs(string.Format("{0} summoned {1}", args.Player.Name, boss), Color.PaleVioletRed, args.Player); TShock.Utils.SendLogs(string.Format("{0} summoned {1}", args.Player.Name, boss), Color.PaleVioletRed, args.Player);
return false; return false;
} }
private static bool HandlePaintTile(GetDataHandlerArgs args) private static bool HandlePaintTile(GetDataHandlerArgs args)
{ {
var x = args.Data.ReadInt32(); var x = args.Data.ReadInt32();
var y = args.Data.ReadInt32(); var y = args.Data.ReadInt32();
var t = args.Data.ReadInt8(); var t = args.Data.ReadInt8();
if (OnPaintTile(x, y, t)) if (OnPaintTile(x, y, t))
return true; return true;
if (!args.Player.Group.HasPermission(Permissions.canpaint)) if (!args.Player.Group.HasPermission(Permissions.canpaint))
{ {
args.Player.SendTileSquare(x, y); args.Player.SendTileSquare(x, y);
return true; return true;
} }
return false; return false;
} }
private static bool HandlePaintWall(GetDataHandlerArgs args) private static bool HandlePaintWall(GetDataHandlerArgs args)
{ {
var x = args.Data.ReadInt32(); var x = args.Data.ReadInt32();
var y = args.Data.ReadInt32(); var y = args.Data.ReadInt32();
var t = args.Data.ReadInt8(); var t = args.Data.ReadInt8();
if (OnPaintTile(x, y, t)) if (OnPaintTile(x, y, t))
return true; return true;
if (!args.Player.Group.HasPermission(Permissions.canpaint)) if (!args.Player.Group.HasPermission(Permissions.canpaint))
{ {
args.Player.SendTileSquare(x, y); args.Player.SendTileSquare(x, y);
return true; return true;
} }
return false; return false;
} }
@ -3237,11 +3215,7 @@ namespace TShockAPI
return true; return true;
byte style = 0; byte style = 0;
var isNPC = false; var isNPC = false || (flag & 1) == 1;
if ((flag & 1) == 1)
{
isNPC = true;
}
if ((flag & 2) != 2) if ((flag & 2) != 2)
{ {