MobileTemplate weapon refactor

This commit is contained in:
Ziggeh
2014-06-07 02:25:41 +02:00
parent 45b60afc8b
commit 6e608a25c5
22 changed files with 173 additions and 183 deletions
+15 -23
View File
@@ -41,6 +41,7 @@ import java.util.concurrent.ScheduledExecutorService;
import resources.common.collidables.CollidableCircle;
import resources.datatables.Options;
import resources.datatables.PvpStatus;
import resources.datatables.WeaponType;
import resources.objects.cell.CellObject;
import resources.objects.creature.CreatureObject;
import resources.objects.tangible.TangibleObject;
@@ -129,42 +130,33 @@ public class SpawnService {
creature.setLevel(level);
}
//WeaponObject defaultWeapon = (mobileTemplate.getWeaponTemplates().size() > 0) ? (WeaponObject) core.objectService.createObject(mobileTemplate.getWeaponTemplates().get(new Random().nextInt(mobileTemplate.getWeaponTemplates().size())), creature.getPlanet()) : (WeaponObject) core.objectService.createObject("object/weapon/creature/shared_creature_default_weapon.iff", creature.getPlanet());
WeaponObject defaultWeapon = null;
Vector<WeaponTemplate> weaponTemplates = mobileTemplate.getWeaponTemplateVector();
if (weaponTemplates.size()==0){
int rnd = new Random().nextInt(weaponTemplates.size());
if (weaponTemplates.size() == 0){
defaultWeapon = (WeaponObject) core.objectService.createObject("object/weapon/creature/shared_creature_default_weapon.iff", creature.getPlanet());
defaultWeapon.setAttackSpeed(1.0F);
defaultWeapon.setWeaponType(6);
defaultWeapon.setWeaponType(WeaponType.UNARMED);
defaultWeapon.setDamageType("kinetic");
defaultWeapon.setMaxRange(5);
} else {
int rnd = new Random().nextInt(weaponTemplates.size());
defaultWeapon = (WeaponObject) core.objectService.createObject(weaponTemplates.get(rnd).getTemplate(), creature.getPlanet());
defaultWeapon = (WeaponObject) core.objectService.createObject(weaponTemplates.get(rnd).getTemplate(), creature.getPlanet());
defaultWeapon.setAttackSpeed(weaponTemplates.get(rnd).getAttackSpeed());
defaultWeapon.setWeaponType(weaponTemplates.get(rnd).getWeaponType());
defaultWeapon.setMaxRange(weaponTemplates.get(rnd).getMaxRange());
defaultWeapon.setDamageType(weaponTemplates.get(rnd).getDamageType());
}
// QA
if (mobileTemplate.getAttackSpeed()==0)
System.err.println("Error in mobile spawn template for " + mobileTemplate.getCreatureName() + ". Missing attackspeed parameter");
if (mobileTemplate.getAttackRange()==0)
System.err.println("Error in mobile spawn template for " + mobileTemplate.getCreatureName() + ". Missing attackrange parameter");
defaultWeapon.setAttackSpeed(mobileTemplate.getAttackSpeed());
defaultWeapon.setWeaponType(mobileTemplate.getWeaponType());
defaultWeapon.setDamageType("@obj_attr_n:armor_eff_kinetic");
defaultWeapon.setStringAttribute("cat_wpn_damage.damage", "0-0");
if(mobileTemplate.getAttackRange() > 0)
defaultWeapon.setMaxRange(mobileTemplate.getAttackRange());
if(mobileTemplate.getMaxDamage() != 0) {
defaultWeapon.setMaxDamage(mobileTemplate.getMaxDamage());
defaultWeapon.setMinDamage(mobileTemplate.getMinDamage());
if (weaponTemplates.get(rnd).getMinDamage() != 0 && weaponTemplates.get(rnd).getMaxDamage() != 0) {
defaultWeapon.setMaxDamage(weaponTemplates.get(rnd).getMinDamage());
defaultWeapon.setMinDamage(weaponTemplates.get(rnd).getMaxDamage());
} else {
defaultWeapon.setMaxDamage(creature.getLevel() * 24);
defaultWeapon.setMinDamage(creature.getLevel() * 22);
}
creature.addObjectToEquipList(defaultWeapon);
creature.add(defaultWeapon);
creature.setWeaponId(defaultWeapon.getObjectID());