package com.lateensoft.pathfinder.toolkit.patching.v6; import com.lateensoft.pathfinder.toolkit.model.character.*; import com.lateensoft.pathfinder.toolkit.model.character.PathfinderCharacter; import com.lateensoft.pathfinder.toolkit.model.character.items.*; import com.lateensoft.pathfinder.toolkit.model.character.stats.*; import com.lateensoft.pathfinder.toolkit.model.character.stats.Skill; public class PreV6CharacterConverter { public static PathfinderCharacter convertCharacter(com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.PTCharacter oldCharacter) { PathfinderCharacter newCharacter = PathfinderCharacter.newDefaultCharacter(""); newCharacter.setName(oldCharacter.getFluff().getName()); newCharacter.setGold(oldCharacter.mGold); setFluff(newCharacter.getFluff(), oldCharacter.getFluff()); setAbilities(newCharacter.getAbilitySet(), oldCharacter.getAbilitySet(), oldCharacter.getTempAbilitySet()); setCombatStats(newCharacter.getCombatStatSet(), oldCharacter.getCombatStatSet()); setFeats(newCharacter.getFeatList(), oldCharacter.getFeatList()); setInventory(newCharacter.getInventory(), oldCharacter.getInventory()); setSaves(newCharacter.getSaveSet(), oldCharacter.getSaveSet()); setSkills(newCharacter.getSkillSet(), oldCharacter.getSkillSet()); setSpells(newCharacter.getSpellBook(), oldCharacter.getSpellBook()); return newCharacter; } private static void setFluff(FluffInfo newFluff, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.PTCharacterFluffInfo oldFluff) { newFluff.setAlignment(oldFluff.getAlignment()); newFluff.setXP(oldFluff.getXP()); newFluff.setNextLevelXP(oldFluff.getNextLevelXP()); newFluff.setPlayerClass(oldFluff.getPlayerClass()); newFluff.setRace(oldFluff.getRace()); newFluff.setDeity(oldFluff.getDeity()); newFluff.setLevel(oldFluff.getLevel()); newFluff.setSize(oldFluff.getSize()); newFluff.setGender(oldFluff.getGender()); newFluff.setHeight(oldFluff.getHeight()); newFluff.setWeight(oldFluff.getWeight()); newFluff.setEyes(oldFluff.getEyes()); newFluff.setHair(oldFluff.getHair()); newFluff.setLanguages(oldFluff.getLanguages()); newFluff.setDescription(oldFluff.getDescription()); } private static void setAbilities(AbilitySet newAbilities, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.stats.PTAbilitySet oldAbilities, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.stats.PTAbilitySet tempAbilities) { for (int i = 0; i < newAbilities.size(); i++) { newAbilities.getAbilityAtIndex(i).setScore(oldAbilities.getAbilityScore(i).getScore()); newAbilities.getAbilityAtIndex(i).setTempBonus(tempAbilities.getAbilityScore(i).getScore() - 10); } } private static void setCombatStats(CombatStatSet newCombatStats, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.stats.PTCombatStatSet oldCombatStats) { newCombatStats.setTotalHP(oldCombatStats.getTotalHP()); newCombatStats.setWounds(oldCombatStats.getWounds()); newCombatStats.setNonLethalDamage(oldCombatStats.getNonLethalDamage()); newCombatStats.setDamageReduction(oldCombatStats.getDamageReduction()); newCombatStats.setBaseSpeed(oldCombatStats.getBaseSpeed()); // Abilities are set to defaults newCombatStats.setInitiativeMiscMod(oldCombatStats.getInitiativeMiscMod()); newCombatStats.setACArmourBonus(oldCombatStats.getACArmourBonus()); newCombatStats.setACShieldBonus(oldCombatStats.getACShieldBonus()); newCombatStats.setSizeModifier(oldCombatStats.getSizeModifier()); newCombatStats.setNaturalArmour(oldCombatStats.getNaturalArmour()); newCombatStats.setDeflectionMod(oldCombatStats.getDeflectionMod()); newCombatStats.setACMiscMod(oldCombatStats.getACMiscMod()); newCombatStats.setSpellResistance(oldCombatStats.getSpellResist()); newCombatStats.setBABPrimary(oldCombatStats.getBABPrimary()); newCombatStats.setBABSecondary(oldCombatStats.getBABSecondary()); } private static void setFeats(FeatList newFeatList, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.PTCharacterFeatList oldFeatList) { Feat newFeat; for (int i = 0; i < oldFeatList.getNumberOfFeats(); i++) { newFeat = new Feat(); newFeat.setName(oldFeatList.getFeat(i).getName()); newFeat.setDescription(oldFeatList.getFeat(i).getDescription()); newFeatList.add(newFeat); } } private static void setInventory(Inventory newInv, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.PTCharacterInventory oldInv) { com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.items.PTItem[] oldItems = oldInv.getItems(); Item newItem; for (com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.items.PTItem oldItem : oldItems) { newItem = new Item(); setItem(newItem, oldItem); newInv.getItems().add(newItem); } com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.items.PTWeapon[] oldWeapons = oldInv.getWeaponArray(); Weapon newWeapon; for (com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.items.PTWeapon oldWeapon : oldWeapons) { newWeapon = new Weapon(); setWeapon(newWeapon, oldWeapon); newInv.getWeapons().add(newWeapon); } com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.items.PTArmor[] oldArmors = oldInv.getArmorArray(); Armor newArmor; for (com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.items.PTArmor oldArmor : oldArmors) { newArmor = new Armor(); setArmor(newArmor, oldArmor); newInv.getArmors().add(newArmor); } } private static void setItem(Item newItem, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.items.PTItem oldItem) { newItem.setName(oldItem.getName()); newItem.setQuantity(oldItem.getQuantity()); newItem.setWeight(oldItem.getWeight()); newItem.setContained(oldItem.isContained()); } private static void setWeapon(Weapon newWeapon, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.items.PTWeapon oldWeapon) { setItem(newWeapon, oldWeapon); newWeapon.setAmmunition(oldWeapon.getAmmunition()); newWeapon.setCritical(oldWeapon.getCritical()); newWeapon.setDamage(oldWeapon.getDamage()); newWeapon.setRange(oldWeapon.getRange()); try { newWeapon.setSize(Size.forKey(oldWeapon.getSize())); } catch (Exception e) { newWeapon.setSize(Size.MEDIUM); } newWeapon.setSpecialProperties(oldWeapon.getSpecialProperties()); newWeapon.setTotalAttackBonus(oldWeapon.getTotalAttackBonus()); try { newWeapon.setType(WeaponType.forKey(oldWeapon.getType())); } catch (Exception e) { newWeapon.setType(WeaponType.SLASHING); } } private static void setArmor(Armor newArmor, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.items.PTArmor oldArmor) { setItem(newArmor, oldArmor); newArmor.setACBonus(oldArmor.getACBonus()); newArmor.setArmorCheckPenalty(0 - oldArmor.getCheckPen()); // Changes this to negatives newArmor.setMaxDex(oldArmor.getMaxDex()); try { newArmor.setSize(Size.forKey(oldArmor.getSize())); } catch (Exception e) { newArmor.setSize(Size.MEDIUM); } newArmor.setSpecialProperties(oldArmor.getSpecialProperties()); newArmor.setSpeed(oldArmor.getSpeed()); newArmor.setSpellFail(oldArmor.getSpellFail()); newArmor.setWorn(oldArmor.isWorn()); } private static void setSaves(SaveSet newSaves, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.stats.PTSaveSet oldSaves) { // This should work, assuming the order does not change for (int i = 0; i < newSaves.size() && i < oldSaves.size(); i++) { setSave(newSaves.getSaveByIndex(i), oldSaves.getSave(i)); } } private static void setSave(Save newSave, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.stats.PTSave oldSave) { newSave.setBaseSave(oldSave.getBase()); newSave.setMagicMod(oldSave.getMagicMod()); newSave.setMiscMod(oldSave.getMiscMod()); newSave.setTempMod(oldSave.getTempMod()); } private static void setSkills(SkillSet newSkills, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.stats.PTSkillSet oldSkills) { com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.stats.PTSkill[] oldSkillArray = oldSkills.getSkills(); // This should work, assuming the order does not change for (int i = 0; i < newSkills.size() && i < oldSkillArray.length; i++) { setSkill(newSkills.getSkillByIndex(i), oldSkillArray[i]); } } private static void setSkill(Skill newSkill, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.stats.PTSkill oldSkill) { newSkill.setRank(oldSkill.getRank()); newSkill.setMiscMod(oldSkill.getMiscMod()); newSkill.setClassSkill(oldSkill.isClassSkill()); } private static void setSpells(SpellBook newSpells, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.PTSpellBook oldSpells) { com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.PTSpell[] oldSpellArray = oldSpells.getSpells(); Spell newSpell; for (com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.PTSpell anOldSpellArray : oldSpellArray) { newSpell = new Spell(); setSpell(newSpell, anOldSpellArray); newSpells.add(newSpell); } } private static void setSpell(Spell newSpell, com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.PTSpell oldSpell) { newSpell.setName(oldSpell.getName()); newSpell.setDescription(oldSpell.getDescription()); newSpell.setLevel(oldSpell.getLevel()); newSpell.setPrepared(oldSpell.getPrepared()); } }