mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-01-07 04:01:45 +01:00
342 lines
13 KiB
JavaScript
342 lines
13 KiB
JavaScript
var ATEditor = (function(ATEditor, model, FieldList, _) {
|
|
|
|
function addLegacyFieldLists(model) {
|
|
model.actorConditions.legacyFieldList = new FieldList("[id|name|iconID|category|isStacking|isPositive|"
|
|
+ "hasRoundEffect|round_visualEffectID|round_boostHP_Min|round_boostHP_Max|round_boostAP_Min|round_boostAP_Max|"
|
|
+ "hasFullRoundEffect|fullround_visualEffectID|fullround_boostHP_Min|fullround_boostHP_Max|fullround_boostAP_Min|fullround_boostAP_Max|"
|
|
+ "hasAbilityEffect|boostMaxHP|boostMaxAP|moveCostPenalty|attackCost|attackChance|criticalChance|criticalMultiplier|attackDamage_Min|attackDamage_Max|blockChance|damageResistance|"
|
|
+ "];"
|
|
);
|
|
model.quests.legacyFieldList = new FieldList("[id|name|showInLog|stages[progress|logText|rewardExperience|finishesQuest|]|];");
|
|
model.items.legacyFieldList = new FieldList("[id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|"
|
|
+ "hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|"
|
|
+ "hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|"
|
|
+ "hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|"
|
|
+ "hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|"
|
|
+ "];"
|
|
);
|
|
model.droplists.legacyFieldList = new FieldList("[id|items[itemID|quantity_Min|quantity_Max|chance|]|];");
|
|
model.dialogue.legacyFieldList = new FieldList("[id|message|rewards[rewardType|rewardID|value|]|replies[text|nextPhraseID|requires_Progress|requires_itemID|requires_Quantity|requires_Type|]|];");
|
|
model.monsters.legacyFieldList = new FieldList("[id|iconID|name|tags|size|monsterClass|unique|faction|maxHP|maxAP|moveCost|attackCost|attackChance|criticalChance|criticalMultiplier|attackDamage_Min|attackDamage_Max|blockChance|damageResistance|droplistID|phraseID|"
|
|
+ "hasHitEffect|onHit_boostHP_Min|onHit_boostHP_Max|onHit_boostAP_Min|onHit_boostAP_Max|onHit_conditionsSource[condition|magnitude|duration|chance|]|onHit_conditionsTarget[condition|magnitude|duration|chance|]|"
|
|
+ "];"
|
|
);
|
|
model.itemCategories.legacyFieldList = new FieldList("[id|name|actionType|inventorySlot|size|];");
|
|
}
|
|
addLegacyFieldLists(model);
|
|
|
|
ATEditor.legacy = ATEditor.legacy || {};
|
|
ATEditor.legacy.convertFromLegacyFormat = {
|
|
monster: convertMonster
|
|
,quest: convertQuest
|
|
,itemcategory: convertItemCategory
|
|
,item: convertItem
|
|
,droplist: convertDroplist
|
|
,dialogue: convertConversation
|
|
,actorcondition: convertCondition
|
|
};
|
|
|
|
function convertMonster(obj) {
|
|
// [id|iconID|name|tags|size|monsterClass|unique|faction|maxHP|maxAP|moveCost|attackCost|attackChance|criticalChance|criticalMultiplier|attackDamage_Min|attackDamage_Max|blockChance|
|
|
// damageResistance|droplistID|phraseID|
|
|
// hasHitEffect|onHit_boostHP_Min|onHit_boostHP_Max|onHit_boostAP_Min|onHit_boostAP_Max|onHit_conditionsSource[condition|magnitude|duration|chance|]|onHit_conditionsTarget[condition|magnitude|duration|chance|]|];
|
|
|
|
var result = {
|
|
id: obj.id,
|
|
iconID: obj.iconID,
|
|
name: obj.name,
|
|
spawnGroup: obj.tags,
|
|
size: obj.size,
|
|
monsterClass: obj.monsterClass,
|
|
unique: obj.unique,
|
|
faction: obj.faction,
|
|
maxHP: obj.maxHP,
|
|
maxAP: obj.maxAP,
|
|
moveCost: obj.moveCost,
|
|
attackCost: obj.attackCost,
|
|
attackChance: obj.attackChance,
|
|
criticalSkill: obj.criticalChance,
|
|
criticalMultiplier: obj.criticalMultiplier,
|
|
blockChance: obj.blockChance,
|
|
damageResistance: obj.damageResistance,
|
|
droplistID: obj.droplistID,
|
|
phraseID: obj.phraseID
|
|
};
|
|
|
|
if (obj.attackDamage_Min || obj.attackDamage_Max) {
|
|
result.attackDamage = {
|
|
min: (obj.attackDamage_Min || 0),
|
|
max: (obj.attackDamage_Max || 0)
|
|
};
|
|
}
|
|
|
|
if (obj.hasHitEffect) {
|
|
result.hitEffect = {};
|
|
var e = result.hitEffect;
|
|
if (obj.onHit_boostHP_Min || obj.onHit_boostHP_Max) {
|
|
e.increaseCurrentHP = {
|
|
min: (obj.onHit_boostHP_Min || 0),
|
|
max: (obj.onHit_boostHP_Max || 0)
|
|
};
|
|
}
|
|
if (obj.onHit_boostAP_Min || obj.onHit_boostAP_Max) {
|
|
e.increaseCurrentAP = {
|
|
min: (obj.onHit_boostAP_Min || 0),
|
|
max: (obj.onHit_boostAP_Max || 0)
|
|
};
|
|
}
|
|
if (obj.onHit_conditionsSource) { e.conditionsSource = obj.onHit_conditionsSource; }
|
|
if (obj.onHit_conditionsTarget) { e.conditionsTarget = obj.onHit_conditionsTarget; }
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
function convertQuest(obj) {
|
|
// [id|name|showInLog|stages[progress|logText|rewardExperience|finishesQuest|]|];
|
|
return obj;
|
|
}
|
|
|
|
function convertItemCategory(obj) {
|
|
// [id|name|actionType|inventorySlot|size|];
|
|
return obj;
|
|
}
|
|
|
|
function convertItem(obj) {
|
|
//[id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|
|
|
// hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|
|
|
// equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|
|
|
// equip_conditions[condition|magnitude|]|
|
|
// hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|
|
|
// hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|
|
|
// hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|];
|
|
|
|
var result = {
|
|
id: obj.id,
|
|
iconID: obj.iconID,
|
|
name: obj.name,
|
|
category: obj.category,
|
|
displaytype: obj.displaytype,
|
|
hasManualPrice: obj.hasManualPrice,
|
|
baseMarketCost: obj.baseMarketCost
|
|
};
|
|
|
|
if (obj.hasEquipEffect) {
|
|
result.equipEffect = {};
|
|
var e = result.equipEffect;
|
|
if (obj.equip_boostMaxHP) { e.increaseMaxHP = obj.equip_boostMaxHP; }
|
|
if (obj.equip_boostMaxAP) { e.increaseMaxAP = obj.equip_boostMaxAP; }
|
|
if (obj.equip_moveCostPenalty) { e.increaseMoveCost = obj.equip_moveCostPenalty; }
|
|
if (obj.equip_attackCost) { e.increaseAttackCost = obj.equip_attackCost; }
|
|
if (obj.equip_attackChance) { e.increaseAttackChance = obj.equip_attackChance; }
|
|
if (obj.equip_criticalChance) { e.increaseCriticalSkill = obj.equip_criticalChance; }
|
|
if (obj.equip_criticalMultiplier) { e.setCriticalMultiplier = obj.equip_criticalMultiplier; }
|
|
if (obj.equip_attackDamage_Min || obj.equip_attackDamage_Max) {
|
|
e.increaseAttackDamage = {
|
|
min: (obj.equip_attackDamage_Min || 0),
|
|
max: (obj.equip_attackDamage_Max || 0)
|
|
};
|
|
}
|
|
if (obj.equip_blockChance) { e.increaseBlockChance = obj.equip_blockChance; }
|
|
if (obj.equip_damageResistance) { e.increaseDamageResistance = obj.equip_damageResistance; }
|
|
}
|
|
|
|
if (obj.equip_conditions) {
|
|
result.equipEffect = result.equipEffect || {};
|
|
result.equipEffect.addedConditions = obj.equip_conditions;
|
|
}
|
|
|
|
if (obj.hasUseEffect) {
|
|
result.useEffect = {};
|
|
var e = result.useEffect;
|
|
if (obj.use_boostHP_Min || obj.use_boostHP_Max) {
|
|
e.increaseCurrentHP = {
|
|
min: (obj.use_boostHP_Min || 0),
|
|
max: (obj.use_boostHP_Max || 0)
|
|
};
|
|
}
|
|
if (obj.use_boostAP_Min || obj.use_boostAP_Max) {
|
|
e.increaseCurrentAP = {
|
|
min: (obj.use_boostAP_Min || 0),
|
|
max: (obj.use_boostAP_Max || 0)
|
|
};
|
|
}
|
|
if (obj.use_conditionsSource) { e.conditionsSource = obj.use_conditionsSource; }
|
|
}
|
|
|
|
if (obj.hasHitEffect) {
|
|
result.hitEffect = {};
|
|
var e = result.hitEffect;
|
|
if (obj.hit_boostHP_Min || obj.hit_boostHP_Max) {
|
|
e.increaseCurrentHP = {
|
|
min: (obj.hit_boostHP_Min || 0),
|
|
max: (obj.hit_boostHP_Max || 0)
|
|
};
|
|
}
|
|
if (obj.hit_boostAP_Min || obj.hit_boostAP_Max) {
|
|
e.increaseCurrentAP = {
|
|
min: (obj.hit_boostAP_Min || 0),
|
|
max: (obj.hit_boostAP_Max || 0)
|
|
};
|
|
}
|
|
if (obj.hit_conditionsSource) { e.conditionsSource = obj.hit_conditionsSource; }
|
|
if (obj.hit_conditionsTarget) { e.conditionsTarget = obj.hit_conditionsTarget; }
|
|
}
|
|
|
|
if (obj.hasKillEffect) {
|
|
result.killEffect = {};
|
|
var e = result.killEffect;
|
|
if (obj.kill_boostHP_Min || obj.kill_boostHP_Max) {
|
|
e.increaseCurrentHP = {
|
|
min: (obj.kill_boostHP_Min || 0),
|
|
max: (obj.kill_boostHP_Max || 0)
|
|
};
|
|
}
|
|
if (obj.kill_boostAP_Min || obj.kill_boostAP_Max) {
|
|
e.increaseCurrentAP = {
|
|
min: (obj.kill_boostAP_Min || 0),
|
|
max: (obj.kill_boostAP_Max || 0)
|
|
};
|
|
}
|
|
if (obj.kill_conditionsSource) { e.conditionsSource = obj.kill_conditionsSource; }
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
function convertDroplist(obj) {
|
|
// [id|items[itemID|quantity_Min|quantity_Max|chance|]|];
|
|
var result = {
|
|
id: obj.id,
|
|
items: _.map(obj.items, function(obj) {
|
|
return {
|
|
itemID: obj.itemID,
|
|
quantity: {
|
|
min: (obj.quantity_Min || 0),
|
|
max: (obj.quantity_Max || 0)
|
|
},
|
|
chance: obj.chance
|
|
};
|
|
})
|
|
};
|
|
|
|
return result;
|
|
}
|
|
|
|
function convertConversation(obj) {
|
|
// [id|message|rewards[rewardType|rewardID|value|]|replies[text|nextPhraseID|requires_Progress|requires_itemID|requires_Quantity|requires_Type|]|];
|
|
|
|
var result = {
|
|
id: obj.id,
|
|
message: obj.message,
|
|
rewards: obj.rewards
|
|
};
|
|
if (obj.replies) {
|
|
result.replies = _.map(obj.replies, function(obj) {
|
|
var result = {
|
|
text: obj.text,
|
|
nextPhraseID: obj.nextPhraseID
|
|
};
|
|
|
|
if (obj.requires_Progress) {
|
|
result.requires = [];
|
|
result.requires.push({
|
|
requireType: 'questProgress',
|
|
requireID: obj.requires_Progress
|
|
});
|
|
}
|
|
if (obj.requires_itemID) {
|
|
result.requires = result.requires || [];
|
|
result.requires.push({
|
|
requireType: 1 + obj.requires_Type,
|
|
requireID: obj.requires_itemID,
|
|
value: obj.requires_Quantity
|
|
});
|
|
}
|
|
|
|
return result;
|
|
});
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
function convertCondition(obj) {
|
|
// [id|name|iconID|category|isStacking|isPositive|
|
|
// hasRoundEffect|round_visualEffectID|round_boostHP_Min|round_boostHP_Max|round_boostAP_Min|round_boostAP_Max|
|
|
// hasFullRoundEffect|fullround_visualEffectID|fullround_boostHP_Min|fullround_boostHP_Max|fullround_boostAP_Min|fullround_boostAP_Max|
|
|
// hasAbilityEffect|boostMaxHP|boostMaxAP|moveCostPenalty|attackCost|attackChance|criticalChance|criticalMultiplier|attackDamage_Min|attackDamage_Max|blockChance|damageResistance|];
|
|
|
|
var result = {
|
|
id: obj.id,
|
|
iconID: obj.iconID,
|
|
name: obj.name,
|
|
category: obj.category,
|
|
isStacking: obj.isStacking,
|
|
isPositive: obj.isPositive
|
|
};
|
|
|
|
if (obj.hasRoundEffect) {
|
|
result.roundEffect = {};
|
|
var e = result.roundEffect;
|
|
if (obj.round_visualEffectID || obj.round_visualEffectID === 0) { e.visualEffectID = obj.round_visualEffectID; }
|
|
if (obj.round_boostHP_Min || obj.round_boostHP_Max) {
|
|
e.increaseCurrentHP = {
|
|
min: (obj.round_boostHP_Min || 0),
|
|
max: (obj.round_boostHP_Max || 0)
|
|
};
|
|
}
|
|
if (obj.round_boostAP_Min || obj.round_boostAP_Max) {
|
|
e.increaseCurrentAP = {
|
|
min: (obj.round_boostAP_Min || 0),
|
|
max: (obj.round_boostAP_Max || 0)
|
|
};
|
|
}
|
|
}
|
|
|
|
if (obj.hasFullRoundEffect) {
|
|
result.fullRoundEffect = {};
|
|
var e = result.fullRoundEffect;
|
|
if (obj.fullround_visualEffectID || obj.fullround_visualEffectID === 0) { e.visualEffectID = obj.fullround_visualEffectID; }
|
|
if (obj.fullround_boostHP_Min || obj.fullround_boostHP_Max) {
|
|
e.increaseCurrentHP = {
|
|
min: (obj.fullround_boostHP_Min || 0),
|
|
max: (obj.fullround_boostHP_Max || 0)
|
|
};
|
|
}
|
|
if (obj.fullround_boostAP_Min || obj.fullround_boostAP_Max) {
|
|
e.increaseCurrentAP = {
|
|
min: (obj.fullround_boostAP_Min || 0),
|
|
max: (obj.fullround_boostAP_Max || 0)
|
|
};
|
|
}
|
|
}
|
|
|
|
if (obj.hasAbilityEffect) {
|
|
result.abilityEffect = {};
|
|
var e = result.abilityEffect;
|
|
if (obj.boostMaxHP) { e.increaseMaxHP = obj.boostMaxHP; }
|
|
if (obj.boostMaxAP) { e.increaseMaxAP = obj.boostMaxAP; }
|
|
if (obj.moveCostPenalty) { e.increaseMoveCost = obj.moveCostPenalty; }
|
|
if (obj.attackCost) { e.increaseAttackCost = obj.attackCost; }
|
|
if (obj.attackChance) { e.increaseAttackChance = obj.attackChance; }
|
|
if (obj.criticalChance) { e.increaseCriticalSkill = obj.criticalChance; }
|
|
if (obj.criticalMultiplier) { e.setCriticalMultiplier = obj.criticalMultiplier; }
|
|
if (obj.attackDamage_Min || obj.attackDamage_Max) {
|
|
e.increaseAttackDamage = {
|
|
min: (obj.attackDamage_Min || 0),
|
|
max: (obj.attackDamage_Max || 0)
|
|
};
|
|
}
|
|
if (obj.blockChance) { e.increaseBlockChance = obj.blockChance; }
|
|
if (obj.damageResistance) { e.increaseDamageResistance = obj.damageResistance; }
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
return ATEditor;
|
|
})(ATEditor, ATEditor.model, ATEditor.FieldList, _);
|