Added default builds for kits in Champions/Dominate

Added default build selection in lobby when only hitting kit and not selecting a build.
This commit is contained in:
Jonathan Williams 2014-03-11 03:29:11 -07:00
parent f277b1da23
commit c4b7cd19c8
18 changed files with 194 additions and 386 deletions

View File

@ -9,6 +9,9 @@ import mineplex.minecraft.game.classcombat.Class.IPvpClass.ClassType;
import mineplex.minecraft.game.classcombat.Class.repository.ClassRepository;
import mineplex.minecraft.game.classcombat.Class.repository.token.ClassToken;
import mineplex.minecraft.game.classcombat.Class.repository.token.ClientClassTokenWrapper;
import mineplex.minecraft.game.classcombat.Class.repository.token.CustomBuildToken;
import mineplex.minecraft.game.classcombat.Class.repository.token.SlotToken;
import mineplex.minecraft.game.classcombat.Skill.ISkill;
import mineplex.minecraft.game.classcombat.Skill.SkillFactory;
import mineplex.core.MiniClientPlugin;
import mineplex.core.account.CoreClientManager;
@ -32,8 +35,6 @@ public class ClassManager extends MiniClientPlugin<ClientClass> implements IClas
private HashMap<String, IPvpClass> _classes;
private HashMap<Integer, IPvpClass> _classSalesPackageIdMap;
private ClassRestore _classRestore;
private Object _clientLock = new Object();
public ClassManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, SkillFactory skillFactory, String webAddress)
@ -77,30 +78,12 @@ public class ClassManager extends MiniClientPlugin<ClientClass> implements IClas
private void PopulateClasses()
{
_classes.clear();
AddClass(new PvpClass(this, -1, ClassType.Knight,
new String[] { "Trained in the arts of melee combat.", "Able to stand his ground against foes."},
Material.IRON_HELMET, Material.IRON_CHESTPLATE, Material.IRON_LEGGINGS, Material.IRON_BOOTS,
null));
AddClass(new PvpClass(this, -1, ClassType.Ranger,
new String[] { "Mastery with a Bow and Arrow.", "Adept in Wilderness Survival" },
Material.CHAINMAIL_HELMET, Material.CHAINMAIL_CHESTPLATE, Material.CHAINMAIL_LEGGINGS, Material.CHAINMAIL_BOOTS,
null));
AddClass(new PvpClass(this, 3, ClassType.Brute,
new String[] { "Uses pure strength to dominate.", "Great at crowd control."},
Material.DIAMOND_HELMET, Material.DIAMOND_CHESTPLATE, Material.DIAMOND_LEGGINGS, Material.DIAMOND_BOOTS,
null));
AddClass(new PvpClass(this, 4, ClassType.Mage,
new String[] { "Trained in the ancient arts.", "Able to adapt to many roles in combat."},
Material.GOLD_HELMET, Material.GOLD_CHESTPLATE, Material.GOLD_LEGGINGS, Material.GOLD_BOOTS,
null));
AddClass(new PvpClass(this, 5, ClassType.Assassin,
new String[] { "Extremely nimble and smart.", "Excels at ambushing and takedowns.", "", "Permanent Speed II" },
Material.LEATHER_HELMET, Material.LEATHER_CHESTPLATE, Material.LEATHER_LEGGINGS, Material.LEATHER_BOOTS,
null));
AddKnight();
AddRanger();
AddBrute();
AddMage();
AddAssassin();
/*
AddClass(new PvpClass(this, 6, ClassType.Shapeshifter,
@ -131,6 +114,113 @@ public class ClassManager extends MiniClientPlugin<ClientClass> implements IClas
}
}
private void AddAssassin()
{
CustomBuildToken customBuild = new CustomBuildToken();
customBuild.Name = "Default Build";
customBuild.SwordSkillId = _skillFactory.GetSkill("Evade").GetSalesPackageId();
customBuild.AxeSkillId = _skillFactory.GetSkill("Blink").GetSalesPackageId();
customBuild.BowSkillId = _skillFactory.GetSkill("Marked for Death").GetSalesPackageId();
customBuild.ClassPassiveASkillId = _skillFactory.GetSkill("Stealth").GetSalesPackageId();
customBuild.ClassPassiveBSkillId = _skillFactory.GetSkill("Repeated Strikes").GetSalesPackageId();
customBuild.GlobalPassiveSkillId = _skillFactory.GetSkill("Break Fall").GetSalesPackageId();
AddClass(new PvpClass(
this,
5,
ClassType.Assassin,
customBuild,
new String[] { "Extremely nimble and smart.", "Excels at ambushing and takedowns.", "", "Permanent Speed II" },
Material.LEATHER_HELMET, Material.LEATHER_CHESTPLATE, Material.LEATHER_LEGGINGS, Material.LEATHER_BOOTS,
null));
}
private void AddMage()
{
CustomBuildToken customBuild = new CustomBuildToken();
customBuild.Name = "Default Build";
customBuild.SwordSkillId = _skillFactory.GetSkill("Blizzard").GetSalesPackageId();
customBuild.AxeSkillId = _skillFactory.GetSkill("Freezing Blast").GetSalesPackageId();
customBuild.BowSkillId = -1;
customBuild.ClassPassiveASkillId = _skillFactory.GetSkill("Arctic Armor").GetSalesPackageId();
customBuild.ClassPassiveBSkillId = _skillFactory.GetSkill("Glacial Blade").GetSalesPackageId();
customBuild.GlobalPassiveSkillId = _skillFactory.GetSkill("Fitness").GetSalesPackageId();
AddClass(new PvpClass(this,
4,
ClassType.Mage,
customBuild,
new String[] { "Trained in the ancient arts.", "Able to adapt to many roles in combat."},
Material.GOLD_HELMET, Material.GOLD_CHESTPLATE, Material.GOLD_LEGGINGS, Material.GOLD_BOOTS,
null));
}
private void AddBrute()
{
CustomBuildToken customBuild = new CustomBuildToken();
customBuild.Name = "Default Build";
customBuild.SwordSkillId = _skillFactory.GetSkill("Dwarf Toss").GetSalesPackageId();
customBuild.AxeSkillId = _skillFactory.GetSkill("Seismic Slam").GetSalesPackageId();
customBuild.BowSkillId = -1;
customBuild.ClassPassiveASkillId = _skillFactory.GetSkill("Stampede").GetSalesPackageId();
customBuild.ClassPassiveBSkillId = _skillFactory.GetSkill("Crippling Blow").GetSalesPackageId();
customBuild.GlobalPassiveSkillId = _skillFactory.GetSkill("Recharge").GetSalesPackageId();
AddClass(new PvpClass(this,
3,
ClassType.Brute,
customBuild,
new String[] { "Uses pure strength to dominate.", "Great at crowd control."},
Material.DIAMOND_HELMET, Material.DIAMOND_CHESTPLATE, Material.DIAMOND_LEGGINGS, Material.DIAMOND_BOOTS,
null));
}
private void AddRanger()
{
CustomBuildToken customBuild = new CustomBuildToken();
customBuild.Name = "Default Build";
customBuild.SwordSkillId = _skillFactory.GetSkill("Disengage").GetSalesPackageId();
customBuild.AxeSkillId = _skillFactory.GetSkill("Agility").GetSalesPackageId();
customBuild.BowSkillId = _skillFactory.GetSkill("Napalm Shot").GetSalesPackageId();
customBuild.ClassPassiveASkillId = _skillFactory.GetSkill("Barrage").GetSalesPackageId();
customBuild.ClassPassiveBSkillId = _skillFactory.GetSkill("Barbed Arrows").GetSalesPackageId();
customBuild.GlobalPassiveSkillId = _skillFactory.GetSkill("Quick Recovery").GetSalesPackageId();
AddClass(new PvpClass(this,
-1,
ClassType.Ranger,
customBuild,
new String[] { "Mastery with a Bow and Arrow.", "Adept in Wilderness Survival" },
Material.CHAINMAIL_HELMET, Material.CHAINMAIL_CHESTPLATE, Material.CHAINMAIL_LEGGINGS, Material.CHAINMAIL_BOOTS,
null));
}
private void AddKnight()
{
CustomBuildToken customBuild = new CustomBuildToken();
customBuild.Name = "Default Build";
customBuild.SwordSkillId = _skillFactory.GetSkill("Hilt Smash").GetSalesPackageId();
customBuild.AxeSkillId = _skillFactory.GetSkill("Bulls Charge").GetSalesPackageId();
customBuild.BowSkillId = -1;
customBuild.ClassPassiveASkillId = _skillFactory.GetSkill("Swordsmanship").GetSalesPackageId();
customBuild.ClassPassiveBSkillId = _skillFactory.GetSkill("Fortitude").GetSalesPackageId();
customBuild.GlobalPassiveSkillId = _skillFactory.GetSkill("Resistance").GetSalesPackageId();
AddClass(new PvpClass(
this,
-1,
ClassType.Knight,
customBuild,
new String[] { "Trained in the arts of melee combat.", "Able to stand his ground against foes."},
Material.IRON_HELMET, Material.IRON_CHESTPLATE, Material.IRON_LEGGINGS, Material.IRON_BOOTS,
null));
}
public IPvpClass GetClass(String className)
{
return _classes.get(className);
@ -172,14 +262,6 @@ public class ClassManager extends MiniClientPlugin<ClientClass> implements IClas
return _skillFactory;
}
public ClassRestore GetRestore()
{
if (_classRestore == null)
_classRestore = new ClassRestore(_plugin, this, _skillFactory);
return _classRestore;
}
@Override
protected ClientClass AddPlayer(String player)
{

View File

@ -1,259 +0,0 @@
package mineplex.minecraft.game.classcombat.Class;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import mineplex.core.MiniPlugin;
import mineplex.core.common.util.F;
import mineplex.minecraft.game.classcombat.Skill.ISkill;
import mineplex.minecraft.game.classcombat.Skill.SkillFactory;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result;
import org.bukkit.plugin.java.JavaPlugin;
public class ClassRestore extends MiniPlugin
{
private ClassManager _classManager;
private SkillFactory _skillFactory;
private boolean _active = false;
private String _folder = "data/classbuilds/";
private HashMap<String, HashMap<IPvpClass, Collection<ISkill>>> _skills = new HashMap<String, HashMap<IPvpClass, Collection<ISkill>>>();
public ClassRestore(JavaPlugin plugin, ClassManager classManager, SkillFactory skillFactory)
{
super("Class Restore", plugin);
_classManager = classManager;
_skillFactory = skillFactory;
File file = new File(_folder);
file.mkdirs();
}
@EventHandler(priority = EventPriority.HIGHEST)
public void Join(AsyncPlayerPreLoginEvent event)
{
if (!_active)
return;
if (event.getLoginResult() != Result.ALLOWED)
return;
ReadBuilds(event.getName());
}
@EventHandler
public void Quit(PlayerQuitEvent event)
{
if (!_active)
return;
WriteBuilds(event.getPlayer().getName());
_skills.remove(event.getPlayer().getName());
}
public Collection<ISkill> GetBuild(String name, IPvpClass gameClass)
{
if (!_active)
return null;
if (!_skills.containsKey(name))
return null;
if (!_skills.get(name).containsKey(gameClass))
return null;
return _skills.get(name).get(gameClass);
}
public void SaveBuild(String name, IPvpClass gameClass, Collection<ISkill> skills)
{
if (!_active)
return;
if (!_skills.containsKey(name))
_skills.put(name, new HashMap<IPvpClass, Collection<ISkill>>());
//Replace Old
_skills.get(name).put(gameClass, new ArrayList<ISkill>());
//Insert Skills
for (ISkill skill : skills)
_skills.get(name).get(gameClass).add(skill);
}
public boolean IsActive()
{
return _active;
}
public void Activate()
{
_active = true;
}
/* FORMAT
*
* Assassin 5 Bulls Charge
*
*/
public void WriteBuilds(String player)
{
if (!_skills.containsKey(player))
return;
System.out.println("Writing Build: " + player);
FileWriter fstream = null;
BufferedWriter out = null;
try
{
fstream = new FileWriter(_folder + player + ".dat");
out = new BufferedWriter(fstream);
HashMap<IPvpClass, Collection<ISkill>> builds = _skills.get(player);
for (IPvpClass gameClass : builds.keySet())
for (ISkill skill : builds.get(gameClass))
out.write(gameClass.GetName() + " " + skill.GetName() + "\n");
}
catch (Exception e)
{
System.err.println("Build Write Error: " + e.getMessage());
}
finally
{
if (out != null)
{
try
{
out.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
if (fstream != null)
{
try
{
fstream.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
public void ReadBuilds(String player)
{
System.out.println("Reading Build: " + player);
FileInputStream fstream = null;
DataInputStream in = null;
BufferedReader br = null;
try
{
File f = new File(_folder + player + ".dat");
if (!f.exists())
return;
if (!_skills.containsKey(player))
_skills.put(player, new HashMap<IPvpClass, Collection<ISkill>>());
fstream = new FileInputStream(f);
in = new DataInputStream(fstream);
br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null)
{
String[] tokens = strLine.split(" ");
if (tokens.length < 3)
continue;
try
{
//Class
IPvpClass gameClass = _classManager.GetClass(tokens[0]);
if (!_skills.get(player).containsKey(gameClass))
_skills.get(player).put(gameClass, new ArrayList<ISkill>());
ISkill skill = _skillFactory.GetSkill(F.combine(tokens, 2, null, false));
_skills.get(player).get(gameClass).add(skill);
}
catch (Exception e)
{
System.err.println("Build Parse Error: " + e.getMessage());
}
}
}
catch (Exception e)
{
System.err.println("Build Read Error: " + e.getMessage());
}
finally
{
if (br != null)
{
try
{
br.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
if (in != null)
{
try
{
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
if (fstream != null)
{
try
{
fstream.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
}

View File

@ -63,6 +63,7 @@ public class ClientClass
for (IPvpClass pvpClass : _classFactory.GetAllClasses())
{
_customBuilds.put(pvpClass, new HashMap<Integer, CustomBuildToken>());
_customBuilds.get(pvpClass).put(0, pvpClass.getDefaultBuild());
}
if (token == null)
@ -70,6 +71,9 @@ public class ClientClass
for (CustomBuildToken buildToken : token.CustomBuilds)
{
if (buildToken.CustomBuildNumber == 0)
continue;
IPvpClass pvpClass = _classFactory.GetClass(buildToken.PvpClassId);
ISkill swordSkill = _skillFactory.GetSkillBySalesPackageId(buildToken.SwordSkillId);
@ -413,22 +417,6 @@ public class ClientClass
if (_gameClass == null)
return;
//Load Saved
if (_classFactory.GetRestore().IsActive())
{
Collection<ISkill> skills = _classFactory.GetRestore().GetBuild(_client.GetPlayerName(), gameClass);
if (skills != null)
{
for (ISkill skill : skills)
AddSkill(skill);
//Inform
UtilPlayer.message(_client.GetPlayer(), F.main("Class", "Armor Class: " + F.oo(_gameClass.GetName(), true)));
return;
}
}
for (ISkill cur : gameClass.GetDefaultSkills().keySet())
{
if (cur.GetSkillType() == SkillType.Class)
@ -436,7 +424,7 @@ public class ClientClass
}
//Inform
UtilPlayer.message(_client.GetPlayer(), F.main("Class", "Armor Class: " + F.oo(_gameClass.GetName(), true)));
//UtilPlayer.message(_client.GetPlayer(), F.main("Class", "Armor Class: " + F.oo(_gameClass.GetName(), true)));
}
@ -489,10 +477,6 @@ public class ClientClass
_lastSkillMap.put(skill.GetSkillType(), skill);
skill.AddUser(_client.GetPlayer());
//Save
if (_classFactory.GetRestore().IsActive())
_classFactory.GetRestore().SaveBuild(_client.GetPlayerName(), _gameClass, GetSkills());
}
public void RemoveSkill(ISkill skill)

View File

@ -4,6 +4,7 @@ import java.util.HashMap;
import java.util.HashSet;
import mineplex.minecraft.game.classcombat.Class.repository.token.ClassToken;
import mineplex.minecraft.game.classcombat.Class.repository.token.CustomBuildToken;
import mineplex.minecraft.game.classcombat.Skill.ISkill;
import org.bukkit.Material;
@ -38,4 +39,5 @@ public interface IPvpClass
void Update(ClassToken classToken);
String[] GetDesc();
void ApplyArmor(Player caller);
CustomBuildToken getDefaultBuild();
}

View File

@ -3,9 +3,7 @@ package mineplex.minecraft.game.classcombat.Class;
import java.util.HashMap;
import java.util.HashSet;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilGear;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.itemstack.ItemStackFactory;
import mineplex.minecraft.game.classcombat.Class.repository.token.ClassToken;
import mineplex.minecraft.game.classcombat.Class.repository.token.CustomBuildToken;
@ -22,6 +20,7 @@ import org.bukkit.inventory.meta.LeatherArmorMeta;
public class PvpClass implements IPvpClass
{
private ClassType _type;
private CustomBuildToken _customBuild;
private int _salesPackageId;
private String[] _desc;
private int _cost;
@ -39,7 +38,7 @@ public class PvpClass implements IPvpClass
private ClassManager _classes;
public PvpClass(ClassManager classes, int salesPackageId, ClassType type, String[] desc, Material head, Material chest, Material legs, Material boots, Color leatherColor)
public PvpClass(ClassManager classes, int salesPackageId, ClassType type, CustomBuildToken customBuild, String[] desc, Material head, Material chest, Material legs, Material boots, Color leatherColor)
{
_classes = classes;
_salesPackageId = salesPackageId;
@ -48,6 +47,8 @@ public class PvpClass implements IPvpClass
_type = type;
_customBuild = customBuild;
_head = head;
_chest = chest;
_legs = legs;
@ -230,7 +231,7 @@ public class PvpClass implements IPvpClass
{
_classes.Get(player).SetGameClass(null);
UtilPlayer.message(player, F.main("Class", "Armor Class: " + F.oo("None", false)));
// UtilPlayer.message(player, F.main("Class", "Armor Class: " + F.oo("None", false)));
}
@Override
@ -263,6 +264,7 @@ public class PvpClass implements IPvpClass
_salesPackageId = classToken.SalesPackage.GameSalesPackageId;
_cost = classToken.SalesPackage.Gems;
_free = classToken.SalesPackage.Free;
_customBuild.PvpClassId = classToken.SalesPackage.GameSalesPackageId;
}
@Override
@ -303,4 +305,10 @@ public class PvpClass implements IPvpClass
caller.getInventory().setLeggings(legs);
caller.getInventory().setBoots(boots);
}
@Override
public CustomBuildToken getDefaultBuild()
{
return _customBuild;
}
}

View File

@ -1,5 +1,6 @@
package mineplex.minecraft.game.classcombat.Class.repository.token;
import java.util.ArrayList;
import java.util.List;
public class CustomBuildToken
@ -25,7 +26,7 @@ public class CustomBuildToken
public int GlobalPassiveSkillId = -1;
public List<SlotToken> Slots;
public List<SlotToken> Slots = new ArrayList<SlotToken>();;
public void printInfo()
{

View File

@ -40,7 +40,7 @@ public class ClassCombatShop extends ShopBase<ClassShopManager>
return new ArmorPage(Plugin, this, ClientManager, DonationManager, player, Purchasing);
}
public boolean attemptShopOpen(Player player, IPvpClass pvpClass)
public boolean attemptShopOpen(Player player)
{
if (!OpenedShop.contains(player.getName()))
{
@ -51,19 +51,11 @@ public class ClassCombatShop extends ShopBase<ClassShopManager>
OpenShopForPlayer(player);
ClientClass clientClass = Plugin.GetClassManager().Get(player);
player.getInventory().clear();
clientClass.SetGameClass(pvpClass);
pvpClass.ApplyArmor(player);
clientClass.ClearDefaults();
CustomBuildPage buildPage = new CustomBuildPage(Plugin, this, ClientManager, DonationManager, player);
if (!PlayerPageMap.containsKey(player.getName()))
{
System.out.println("PlayerPageMap doesn't have this player");
PlayerPageMap.put(player.getName(), buildPage);
}

View File

@ -108,10 +108,13 @@ public class CustomBuildPage extends ShopPageBase<ClassShopManager, ClassCombatS
customBuild.PvpClassId = _pvpClass.GetSalesPackageId();
}
if (i != 0)
{
AddButton(slot + 9, new ShopItem(Material.ANVIL, "Edit & Save Build", new String[] { }, 1, locked, true), new EditAndSaveCustomBuildButton(this, customBuild));
AddButton(slot + 18, new ShopItem(Material.WORKBENCH, "Edit & Don't Save Build", new String[] { }, 1, locked, true), new EditAndDontSaveCustomBuildButton(this, customBuild));
AddButton(slot + 36, new ShopItem(Material.FIRE, "Delete Build", new String[] { "§rIt will never come back..."}, 1, locked, true), new DeleteCustomBuildButton(this, customBuild));
}
}
else
{
getInventory().setItem(slot + 9, new ShopItem(Material.ANVIL, "Edit & Save Build", new String[] { }, 1, locked, true).getHandle());

View File

@ -550,9 +550,9 @@ public class ArcadeManager extends MiniPlugin implements IRelation
return _classCustomBuildShop;
}
public void openClassShop(Player player, IPvpClass pvpClass)
public void openClassShop(Player player)
{
_classCustomBuildShop.attemptShopOpen(player, pvpClass);
_classCustomBuildShop.attemptShopOpen(player);
}
@EventHandler

View File

@ -561,6 +561,7 @@ public abstract class Game implements Listener
}
_playerKit.put(player, kit);
kit.Selected(player);
if (announce)

View File

@ -5,6 +5,7 @@ import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.ItemDespawnEvent;
@ -14,8 +15,6 @@ import mineplex.core.common.util.C;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.minecraft.game.classcombat.shop.ClassCombatCustomBuildShop;
import mineplex.minecraft.game.classcombat.shop.ClassShopManager;
import mineplex.minecraft.game.core.combat.event.CombatDeathEvent;
import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.GameType;
@ -28,14 +27,11 @@ import nautilus.game.arcade.game.games.champions_dominate.kits.KitKnight;
import nautilus.game.arcade.game.games.champions_dominate.kits.KitMage;
import nautilus.game.arcade.game.games.champions_dominate.kits.KitRanger;
import nautilus.game.arcade.game.games.champions_dominate.map.*;
import nautilus.game.arcade.game.games.smash.kits.*;
import nautilus.game.arcade.kit.Kit;
import nautilus.game.arcade.kit.KitAvailability;
public class Dominate extends TeamGame
{
//Class Combat
private ClassCombatCustomBuildShop _shop;
//Map Data
private ArrayList<CapturePoint> _points = new ArrayList<CapturePoint>();
private ArrayList<Emerald> _emerald = new ArrayList<Emerald>();
@ -75,9 +71,6 @@ public class Dominate extends TeamGame
this.PrepareFreeze = false;
this.DeathSpectateSecs = 8;
_shop = manager.getClassShop();
}
@Override
@ -98,29 +91,18 @@ public class Dominate extends TeamGame
_emerald.add(new Emerald(this, loc));
}
this.CreatureAllowOverride = true;
CreatureAllowOverride = true;
//Knight
new KitKnight(Manager).SpawnEntity(WorldData.GetDataLocs("RED").get(0));
new KitKnight(Manager).SpawnEntity(WorldData.GetDataLocs("BLUE").get(0));
for (int i = 0; i < GetKits().length && i < WorldData.GetDataLocs("RED").size() && i < WorldData.GetDataLocs("BLUE").size(); i++)
{
Entity ent = GetKits()[i].SpawnEntity(WorldData.GetDataLocs("RED").get(i));
Manager.GetLobby().AddKitLocation(ent, GetKits()[i], WorldData.GetDataLocs("RED").get(i));
//Ranger
new KitRanger(Manager).SpawnEntity(WorldData.GetDataLocs("RED").get(1));
new KitRanger(Manager).SpawnEntity(WorldData.GetDataLocs("BLUE").get(1));
ent = GetKits()[i].SpawnEntity(WorldData.GetDataLocs("BLUE").get(i));
Manager.GetLobby().AddKitLocation(ent, GetKits()[i], WorldData.GetDataLocs("BLUE").get(i));
}
//Brute
new KitBrute(Manager).SpawnEntity(WorldData.GetDataLocs("RED").get(2));
new KitBrute(Manager).SpawnEntity(WorldData.GetDataLocs("BLUE").get(2));
//Assassin
new KitAssassin(Manager).SpawnEntity(WorldData.GetDataLocs("RED").get(3));
new KitAssassin(Manager).SpawnEntity(WorldData.GetDataLocs("BLUE").get(3));
//Mage
new KitMage(Manager).SpawnEntity(WorldData.GetDataLocs("RED").get(4));
new KitMage(Manager).SpawnEntity(WorldData.GetDataLocs("BLUE").get(4));
this.CreatureAllowOverride = false;
CreatureAllowOverride = false;
}
@EventHandler
@ -301,4 +283,10 @@ public class Dominate extends TeamGame
{
return 1;
}
@Override
public void ValidateKit(Player player, GameTeam team)
{
// NOTHING
}
}

View File

@ -48,13 +48,14 @@ public class KitAssassin extends Kit
ClientClass clientClass = _class.get(player);
IPvpClass pvpClass = Manager.getClassManager().GetClass("Assassin");
player.getInventory().clear();
clientClass.SetGameClass(pvpClass);
pvpClass.ApplyArmor(player);
clientClass.ClearDefaults();
Manager.openClassShop(player, Manager.getClassManager().GetClass("Assassin"));
if (!Manager.GetGame().InProgress())
clientClass.SetActiveCustomBuild(pvpClass, pvpClass.getDefaultBuild());
Manager.openClassShop(player);
}
@Override

View File

@ -48,13 +48,14 @@ public class KitBrute extends Kit
ClientClass clientClass = _class.get(player);
IPvpClass pvpClass = Manager.getClassManager().GetClass("Brute");
player.getInventory().clear();
clientClass.SetGameClass(pvpClass);
pvpClass.ApplyArmor(player);
clientClass.ClearDefaults();
Manager.openClassShop(player, Manager.getClassManager().GetClass("Brute"));
if (!Manager.GetGame().InProgress())
clientClass.SetActiveCustomBuild(pvpClass, pvpClass.getDefaultBuild());
Manager.openClassShop(player);
}
@Override

View File

@ -48,13 +48,14 @@ public class KitKnight extends Kit
ClientClass clientClass = _class.get(player);
IPvpClass pvpClass = Manager.getClassManager().GetClass("Knight");
player.getInventory().clear();
clientClass.SetGameClass(pvpClass);
pvpClass.ApplyArmor(player);
clientClass.ClearDefaults();
Manager.openClassShop(player, Manager.getClassManager().GetClass("Knight"));
if (!Manager.GetGame().InProgress())
clientClass.SetActiveCustomBuild(pvpClass, pvpClass.getDefaultBuild());
Manager.openClassShop(player);
}
@Override

View File

@ -48,13 +48,14 @@ public class KitMage extends Kit
ClientClass clientClass = _class.get(player);
IPvpClass pvpClass = Manager.getClassManager().GetClass("Mage");
player.getInventory().clear();
clientClass.SetGameClass(pvpClass);
pvpClass.ApplyArmor(player);
clientClass.ClearDefaults();
Manager.openClassShop(player, Manager.getClassManager().GetClass("Mage"));
if (!Manager.GetGame().InProgress())
clientClass.SetActiveCustomBuild(pvpClass, pvpClass.getDefaultBuild());
Manager.openClassShop(player);
}
@Override

View File

@ -48,13 +48,14 @@ public class KitRanger extends Kit
ClientClass clientClass = _class.get(player);
IPvpClass pvpClass = Manager.getClassManager().GetClass("Ranger");
player.getInventory().clear();
clientClass.SetGameClass(pvpClass);
pvpClass.ApplyArmor(player);
clientClass.ClearDefaults();
Manager.openClassShop(player, Manager.getClassManager().GetClass("Ranger"));
if (!Manager.GetGame().InProgress())
clientClass.SetActiveCustomBuild(pvpClass, pvpClass.getDefaultBuild());
Manager.openClassShop(player);
}
@Override

View File

@ -489,6 +489,7 @@ public class GameManager implements Listener
game.ValidateKit(player, game.GetTeam(player));
if (game.GetKit(player) != null)
game.GetKit(player).ApplyKit(player);
}
}

Binary file not shown.