mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-24 22:14:36 +02:00
Introduced new spell configuration options (not used yet)
This commit is contained in:
parent
c7480e7fe5
commit
ce8fa33efc
@ -53,6 +53,16 @@
|
||||
"smart":{
|
||||
"type": "boolean",
|
||||
"description": "true: friendly/hostile based on positiveness; false: all targets"
|
||||
},
|
||||
"clearTarget":
|
||||
{
|
||||
"type": "boolean",
|
||||
"description": "LOCATION target only. Target hex/tile must be clear"
|
||||
},
|
||||
"clearAffected":
|
||||
{
|
||||
"type": "boolean",
|
||||
"description": "LOCATION target only. All affected hexes/tile must be clear"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -120,7 +130,8 @@
|
||||
},
|
||||
"targetType":{
|
||||
"type": "string",
|
||||
"enum": ["NO_TARGET","CREATURE","OBSTACLE"]
|
||||
"description": "NO_TARGET - instant cast no aiming, default; CREATURE - target is unit; OBSTACLE - target is OBSTACLE; LOCATION - target is location",
|
||||
"enum": ["NO_TARGET","CREATURE","OBSTACLE","LOCATION"]
|
||||
},
|
||||
"anim":{
|
||||
"type": "number",
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"stoneGaze" : {
|
||||
"index" : 70,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : 70,
|
||||
"sounds": {
|
||||
"cast": "PARALYZE"
|
||||
@ -33,6 +34,7 @@
|
||||
},
|
||||
"poison" : {
|
||||
"index" : 71,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : 67,
|
||||
"sounds": {
|
||||
"cast": "POISON"
|
||||
@ -67,6 +69,7 @@
|
||||
},
|
||||
"bind" : {
|
||||
"index" : 72,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : 68,
|
||||
"sounds": {
|
||||
"cast": "BIND"
|
||||
@ -90,6 +93,7 @@
|
||||
},
|
||||
"disease" : {
|
||||
"index" : 73,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : 69,
|
||||
"sounds": {
|
||||
"cast": "DISEASE"
|
||||
@ -124,6 +128,7 @@
|
||||
},
|
||||
"paralyze" : {
|
||||
"index" : 74,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : 70,
|
||||
"sounds": {
|
||||
"cast": "PARALYZE"
|
||||
@ -156,6 +161,7 @@
|
||||
},
|
||||
"age" : {
|
||||
"index" : 75,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : 71,
|
||||
"sounds": {
|
||||
"cast": "AGE"
|
||||
@ -184,6 +190,7 @@
|
||||
},
|
||||
"deathCloud" : {
|
||||
"index" : 76,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : 72,
|
||||
"sounds": {
|
||||
"cast": "DEATHCLD"
|
||||
@ -203,6 +210,7 @@
|
||||
},
|
||||
"thunderbolt" : {
|
||||
"index" : 77,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : 38,
|
||||
"sounds": {
|
||||
"cast": "LIGHTBLT"
|
||||
@ -220,6 +228,7 @@
|
||||
},
|
||||
"dispelHelpful" : {
|
||||
"index" : 78,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : 41,
|
||||
"sounds": {
|
||||
"cast": "DISPELL"
|
||||
@ -236,6 +245,7 @@
|
||||
},
|
||||
"deathStare" : {
|
||||
"index" : 79,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : 80,
|
||||
"sounds": {
|
||||
"cast": "DEATHSTR"
|
||||
@ -255,6 +265,7 @@
|
||||
},
|
||||
"acidBreath" : {
|
||||
"index" : 80,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : 81,
|
||||
"sounds": {
|
||||
"cast": "ACID"
|
||||
@ -280,6 +291,7 @@
|
||||
},
|
||||
"acidBreathDamage" : {
|
||||
"index" : 81,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : 81,
|
||||
"sounds": {
|
||||
"cast": "ACID"
|
||||
|
@ -2,6 +2,7 @@
|
||||
"summonBoat" : {
|
||||
"index" : 0,
|
||||
"anim" : -1,
|
||||
"targetType": "NO_TARGET",
|
||||
"sounds": {
|
||||
"cast": "SUMMBOAT"
|
||||
},
|
||||
@ -16,6 +17,7 @@
|
||||
},
|
||||
"scuttleBoat" : {
|
||||
"index" : 1,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "SCUTBOAT"
|
||||
@ -31,6 +33,7 @@
|
||||
},
|
||||
"visions" : {
|
||||
"index" : 2,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "VISIONS"
|
||||
@ -46,6 +49,7 @@
|
||||
},
|
||||
"viewEarth" : {
|
||||
"index" : 3,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "VIEW"
|
||||
@ -61,6 +65,7 @@
|
||||
},
|
||||
"disguise" : {
|
||||
"index" : 4,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "DISGUISE"
|
||||
@ -76,6 +81,7 @@
|
||||
},
|
||||
"viewAir" : {
|
||||
"index" : 5,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "VIEW"
|
||||
@ -91,6 +97,7 @@
|
||||
},
|
||||
"fly" : {
|
||||
"index" : 6,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "FLYSPELL"
|
||||
@ -106,6 +113,7 @@
|
||||
},
|
||||
"waterWalk" : {
|
||||
"index" : 7,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "WATRWALK"
|
||||
@ -121,6 +129,7 @@
|
||||
},
|
||||
"dimensionDoor" : {
|
||||
"index" : 8,
|
||||
"targetType": "LOCATION",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "TELPTOUT"
|
||||
@ -136,6 +145,7 @@
|
||||
},
|
||||
"townPortal" : {
|
||||
"index" : 9,
|
||||
"targetType": "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "TELPTOUT"
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"magicArrow" : {
|
||||
"index" : 15,
|
||||
"targetType": "CREATURE",
|
||||
"anim" : 64,
|
||||
"sounds": {
|
||||
"cast": "MAGICBLT"
|
||||
@ -22,6 +23,7 @@
|
||||
},
|
||||
"iceBolt" : {
|
||||
"index" : 16,
|
||||
"targetType": "CREATURE",
|
||||
"anim" : 46,
|
||||
"sounds": {
|
||||
"cast": "ICERAY"
|
||||
@ -43,6 +45,7 @@
|
||||
},
|
||||
"lightningBolt" : {
|
||||
"index" : 17,
|
||||
"targetType": "CREATURE",
|
||||
"anim" : 38,
|
||||
"sounds": {
|
||||
"cast": "LIGHTBLT"
|
||||
@ -64,6 +67,7 @@
|
||||
},
|
||||
"implosion" : {
|
||||
"index" : 18,
|
||||
"targetType": "CREATURE",
|
||||
"anim" : 10,
|
||||
"sounds": {
|
||||
"cast": "DECAY"
|
||||
@ -86,6 +90,7 @@
|
||||
},
|
||||
"chainLightning" : {
|
||||
"index" : 19,
|
||||
"targetType": "CREATURE",
|
||||
"anim" : 38,
|
||||
"sounds": {
|
||||
"cast": "CHAINLTE"
|
||||
@ -104,6 +109,7 @@
|
||||
},
|
||||
"frostRing" : {
|
||||
"index" : 20,
|
||||
"targetType": "LOCATION",
|
||||
"anim" : 45,
|
||||
"sounds": {
|
||||
"cast": "FROSTING"
|
||||
@ -125,6 +131,7 @@
|
||||
},
|
||||
"fireball" : {
|
||||
"index" : 21,
|
||||
"targetType": "LOCATION",
|
||||
"anim" : 53,
|
||||
"sounds": {
|
||||
"cast": "FIREBALL"
|
||||
@ -146,6 +153,7 @@
|
||||
},
|
||||
"inferno" : {
|
||||
"index" : 22,
|
||||
"targetType": "LOCATION",
|
||||
"anim" : 9,
|
||||
"sounds": {
|
||||
"cast": "FIREBLST"
|
||||
@ -167,6 +175,7 @@
|
||||
},
|
||||
"meteorShower" : {
|
||||
"index" : 23,
|
||||
"targetType": "LOCATION",
|
||||
"anim" : 16,
|
||||
"sounds": {
|
||||
"cast": "METEOR"
|
||||
@ -261,6 +270,7 @@
|
||||
},
|
||||
"titanBolt" : {
|
||||
"index" : 57,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 38,
|
||||
"sounds": {
|
||||
"cast": "LIGHTBLT"
|
||||
@ -277,5 +287,5 @@
|
||||
"negative": true,
|
||||
"special": true
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"quicksand" : {
|
||||
"index" : 10,
|
||||
"targetType" : "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "QUIKSAND"
|
||||
@ -16,6 +17,7 @@
|
||||
},
|
||||
"landMine" : {
|
||||
"index" : 11,
|
||||
"targetType" : "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": ""
|
||||
@ -35,13 +37,17 @@
|
||||
},
|
||||
"forceField" : {
|
||||
"index" : 12,
|
||||
"targetType" : "LOCATION",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "FORCEFLD"
|
||||
},
|
||||
"levels" : {
|
||||
"base":{
|
||||
"range" : "0"
|
||||
"range" : "0",
|
||||
"targetModifier":{
|
||||
"clearAffected": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"flags" : {
|
||||
@ -50,13 +56,17 @@
|
||||
},
|
||||
"fireWall" : {
|
||||
"index" : 13,
|
||||
"targetType" : "LOCATION",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "FIREWALL"
|
||||
},
|
||||
"levels" : {
|
||||
"base":{
|
||||
"range" : "0"
|
||||
"range" : "0",
|
||||
"targetModifier":{
|
||||
"clearAffected": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"flags" : {
|
||||
@ -69,6 +79,7 @@
|
||||
},
|
||||
"earthquake" : {
|
||||
"index" : 14,
|
||||
"targetType" : "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "ERTHQUAK"
|
||||
@ -85,6 +96,7 @@
|
||||
|
||||
"dispel" : {
|
||||
"index" : 35,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 41,
|
||||
"sounds": {
|
||||
"cast": "DISPELL"
|
||||
@ -103,6 +115,7 @@
|
||||
},
|
||||
"cure" : {
|
||||
"index" : 37,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 39,
|
||||
"sounds": {
|
||||
"cast": "CURE"
|
||||
@ -122,6 +135,7 @@
|
||||
},
|
||||
"resurrection" : {
|
||||
"index" : 38,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 79,
|
||||
"sounds": {
|
||||
"cast": "RESURECT"
|
||||
@ -143,6 +157,7 @@
|
||||
},
|
||||
"animateDead" : {
|
||||
"index" : 39,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 79,
|
||||
"sounds": {
|
||||
"cast": "ANIMDEAD"
|
||||
@ -163,6 +178,7 @@
|
||||
},
|
||||
"sacrifice" : {
|
||||
"index" : 40,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 79,
|
||||
"sounds": {
|
||||
"cast": "SACRIF1"
|
||||
@ -184,6 +200,7 @@
|
||||
},
|
||||
"teleport" : {
|
||||
"index" : 63,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "TELPTOUT"
|
||||
@ -203,6 +220,7 @@
|
||||
},
|
||||
"removeObstacle" : {
|
||||
"index" : 64,
|
||||
"targetType" : "OBSTACLE",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "REMOVEOB"
|
||||
@ -218,6 +236,7 @@
|
||||
},
|
||||
"clone" : {
|
||||
"index" : 65,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "CLONE"
|
||||
@ -237,6 +256,7 @@
|
||||
},
|
||||
"fireElemental" : {
|
||||
"index" : 66,
|
||||
"targetType" : "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "SUMNELM"
|
||||
@ -252,6 +272,7 @@
|
||||
},
|
||||
"earthElemental" : {
|
||||
"index" : 67,
|
||||
"targetType" : "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "SUMNELM"
|
||||
@ -267,6 +288,7 @@
|
||||
},
|
||||
"waterElemental" : {
|
||||
"index" : 68,
|
||||
"targetType" : "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "SUMNELM"
|
||||
@ -282,6 +304,7 @@
|
||||
},
|
||||
"airElemental" : {
|
||||
"index" : 69,
|
||||
"targetType" : "NO_TARGET",
|
||||
"anim" : -1,
|
||||
"sounds": {
|
||||
"cast": "SUMNELM"
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"shield" : {
|
||||
"index" : 27,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 27,
|
||||
"sounds": {
|
||||
"cast": "SHIELD"
|
||||
@ -27,6 +28,7 @@
|
||||
},
|
||||
"airShield" : {
|
||||
"index" : 28,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 2,
|
||||
"sounds": {
|
||||
"cast": "AIRSHELD"
|
||||
@ -53,6 +55,7 @@
|
||||
},
|
||||
"fireShield" : {
|
||||
"index" : 29,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 11,
|
||||
"sounds": {
|
||||
"cast": "FIRESHIE"
|
||||
@ -81,6 +84,7 @@
|
||||
},
|
||||
"protectAir" : {
|
||||
"index" : 30,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 22,
|
||||
"sounds": {
|
||||
"cast": "PROTECTA"
|
||||
@ -107,6 +111,7 @@
|
||||
},
|
||||
"protectFire" : {
|
||||
"index" : 31,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 24,
|
||||
"sounds": {
|
||||
"cast": "PROTECTF"
|
||||
@ -133,6 +138,7 @@
|
||||
},
|
||||
"protectWater" : {
|
||||
"index" : 32,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 23,
|
||||
"sounds": {
|
||||
"cast": "PROTECTW"
|
||||
@ -159,6 +165,7 @@
|
||||
},
|
||||
"protectEarth" : {
|
||||
"index" : 33,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 26,
|
||||
"sounds": {
|
||||
"cast": "PROTECTE"
|
||||
@ -185,6 +192,7 @@
|
||||
},
|
||||
"antiMagic" : {
|
||||
"index" : 34,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 5,
|
||||
"sounds": {
|
||||
"cast": "ANTIMAGK"
|
||||
@ -224,6 +232,7 @@
|
||||
|
||||
"magicMirror" : {
|
||||
"index" : 36,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 3,
|
||||
"sounds": {
|
||||
"cast": "BACKLASH"
|
||||
@ -248,6 +257,7 @@
|
||||
|
||||
"bless" : {
|
||||
"index" : 41,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 36,
|
||||
"sounds": {
|
||||
"cast": "BLESS"
|
||||
@ -282,6 +292,7 @@
|
||||
},
|
||||
"curse" : {
|
||||
"index" : 42,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 40,
|
||||
"sounds": {
|
||||
"cast": "CURSE"
|
||||
@ -317,6 +328,7 @@
|
||||
},
|
||||
"bloodlust" : {
|
||||
"index" : 43,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 4,
|
||||
"sounds": {
|
||||
"cast": "BLOODLUS"
|
||||
@ -360,6 +372,7 @@
|
||||
},
|
||||
"precision" : {
|
||||
"index" : 44,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 25,
|
||||
"sounds": {
|
||||
"cast": "PRECISON"
|
||||
@ -403,6 +416,7 @@
|
||||
},
|
||||
"weakness" : {
|
||||
"index" : 45,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 56,
|
||||
"sounds": {
|
||||
"cast": "WEAKNESS"
|
||||
@ -446,6 +460,7 @@
|
||||
},
|
||||
"stoneSkin" : {
|
||||
"index" : 46,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 54,
|
||||
"sounds": {
|
||||
"cast": "TUFFSKIN"
|
||||
@ -485,7 +500,7 @@
|
||||
},
|
||||
"disruptingRay" : {
|
||||
"index" : 47,
|
||||
"targetType" : "CREATURE", //fix, dont remove
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 14,
|
||||
"sounds": {
|
||||
"cast": "DISRUPTR"
|
||||
@ -525,6 +540,7 @@
|
||||
},
|
||||
"prayer" : {
|
||||
"index" : 48,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 0,
|
||||
"sounds": {
|
||||
"cast": "PRAYER"
|
||||
@ -588,6 +604,7 @@
|
||||
},
|
||||
"mirth" : {
|
||||
"index" : 49,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 20,
|
||||
"sounds": {
|
||||
"cast": "MIRTH"
|
||||
@ -636,6 +653,7 @@
|
||||
},
|
||||
"sorrow" : {
|
||||
"index" : 50,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 30,
|
||||
"sounds": {
|
||||
"cast": "SORROW"
|
||||
@ -684,6 +702,7 @@
|
||||
},
|
||||
"fortune" : {
|
||||
"index" : 51,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 18,
|
||||
"sounds": {
|
||||
"cast": "FORTUNE"
|
||||
@ -725,6 +744,7 @@
|
||||
},
|
||||
"misfortune" : {
|
||||
"index" : 52,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 48,
|
||||
"sounds": {
|
||||
"cast": "MISFORT"
|
||||
@ -766,6 +786,7 @@
|
||||
},
|
||||
"haste" : {
|
||||
"index" : 53,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 31,
|
||||
"sounds": {
|
||||
"cast": "HASTE"
|
||||
@ -811,6 +832,7 @@
|
||||
},
|
||||
"slow" : {
|
||||
"index" : 54,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 19,
|
||||
"sounds": {
|
||||
"cast": "MUCKMIRE"
|
||||
@ -858,6 +880,7 @@
|
||||
},
|
||||
"slayer" : {
|
||||
"index" : 55,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 28,
|
||||
"sounds": {
|
||||
"cast": "SLAYER"
|
||||
@ -908,6 +931,7 @@
|
||||
},
|
||||
"frenzy" : {
|
||||
"index" : 56,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 17,
|
||||
"sounds": {
|
||||
"cast": "FRENZY"
|
||||
@ -946,6 +970,7 @@
|
||||
|
||||
"counterstrike" : {
|
||||
"index" : 58,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 7,
|
||||
"sounds": {
|
||||
"cast": "CNTRSTRK"
|
||||
@ -984,6 +1009,7 @@
|
||||
},
|
||||
"berserk" : {
|
||||
"index" : 59,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 35,
|
||||
"sounds": {
|
||||
"cast": "BERSERK"
|
||||
@ -1042,6 +1068,7 @@
|
||||
},
|
||||
"hypnotize" : {
|
||||
"index" : 60,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 21,
|
||||
"sounds": {
|
||||
"cast": "HYPNOTIZ"
|
||||
@ -1158,6 +1185,7 @@
|
||||
},
|
||||
"blind" : {
|
||||
"index" : 62,
|
||||
"targetType" : "CREATURE",
|
||||
"anim" : 6,
|
||||
"sounds": {
|
||||
"cast": "BLIND"
|
||||
|
@ -35,7 +35,7 @@ namespace SpellConfig
|
||||
|
||||
///CSpell::LevelInfo
|
||||
CSpell::LevelInfo::LevelInfo()
|
||||
:description(""),cost(0),power(0),AIValue(0),smartTarget(true),range("0")
|
||||
:description(""),cost(0),power(0),AIValue(0),smartTarget(true), clearTarget(false), clearAffected(false), range("0")
|
||||
{
|
||||
|
||||
}
|
||||
@ -587,17 +587,7 @@ std::vector<JsonNode> CSpellHandler::loadLegacyData(size_t dataSize)
|
||||
for(size_t i = 0; i < GameConstants::SPELL_SCHOOL_LEVELS ; i++)
|
||||
descriptions.push_back(parser.readString());
|
||||
|
||||
std::string attributes = parser.readString();
|
||||
|
||||
std::string targetType = "NO_TARGET";
|
||||
|
||||
if(attributes.find("CREATURE_TARGET_1") != std::string::npos
|
||||
|| attributes.find("CREATURE_TARGET_2") != std::string::npos)
|
||||
targetType = "CREATURE_EXPERT_MASSIVE";
|
||||
else if(attributes.find("CREATURE_TARGET") != std::string::npos)
|
||||
targetType = "CREATURE";
|
||||
else if(attributes.find("OBSTACLE_TARGET") != std::string::npos)
|
||||
targetType = "OBSTACLE";
|
||||
parser.readString(); //ignore attributes. All data present in JSON
|
||||
|
||||
//save parsed level specific data
|
||||
for(size_t i = 0; i < GameConstants::SPELL_SCHOOL_LEVELS; i++)
|
||||
@ -609,16 +599,6 @@ std::vector<JsonNode> CSpellHandler::loadLegacyData(size_t dataSize)
|
||||
level["aiValue"].Float() = AIVals[i];
|
||||
}
|
||||
|
||||
if(targetType == "CREATURE_EXPERT_MASSIVE")
|
||||
{
|
||||
lineNode["targetType"].String() = "CREATURE";
|
||||
getLevel(3)["range"].String() = "X";
|
||||
}
|
||||
else
|
||||
{
|
||||
lineNode["targetType"].String() = targetType;
|
||||
}
|
||||
|
||||
legacyData.push_back(lineNode);
|
||||
|
||||
|
||||
@ -708,6 +688,8 @@ CSpell * CSpellHandler::loadFromJson(const JsonNode& json)
|
||||
spell->targetType = CSpell::CREATURE;
|
||||
else if(targetType == "OBSTACLE")
|
||||
spell->targetType = CSpell::OBSTACLE;
|
||||
else if(targetType == "LOCATION")
|
||||
spell->targetType = CSpell::LOCATION;
|
||||
else
|
||||
logGlobal->warnStream() << "Spell " << spell->name << ". Target type " << (targetType.empty() ? "empty" : "unknown ("+targetType+")") << ". Assumed NO_TARGET.";
|
||||
|
||||
@ -812,14 +794,15 @@ CSpell * CSpellHandler::loadFromJson(const JsonNode& json)
|
||||
|
||||
CSpell::LevelInfo & levelObject = spell->levels[levelIndex];
|
||||
|
||||
const si32 levelPower = levelNode["power"].Float();
|
||||
const si32 levelPower = levelObject.power = levelNode["power"].Float();
|
||||
|
||||
levelObject.description = levelNode["description"].String();
|
||||
levelObject.cost = levelNode["cost"].Float();
|
||||
levelObject.power = levelPower;
|
||||
levelObject.AIValue = levelNode["aiValue"].Float();
|
||||
levelObject.smartTarget = levelNode["targetModifier"]["smart"].Bool();
|
||||
levelObject.range = levelNode["range"].String();
|
||||
levelObject.description = levelNode["description"].String();
|
||||
levelObject.cost = levelNode["cost"].Float();
|
||||
levelObject.AIValue = levelNode["aiValue"].Float();
|
||||
levelObject.smartTarget = levelNode["targetModifier"]["smart"].Bool();
|
||||
levelObject.clearTarget = levelNode["targetModifier"]["clearTarget"].Bool();
|
||||
levelObject.clearAffected = levelNode["targetModifier"]["clearAffected"].Bool();
|
||||
levelObject.range = levelNode["range"].String();
|
||||
|
||||
for(const auto & elem : levelNode["effects"].Struct())
|
||||
{
|
||||
|
@ -103,6 +103,8 @@ public:
|
||||
si32 AIValue; //AI values: per skill level: 0 - none, 1 - basic, etc
|
||||
|
||||
bool smartTarget;
|
||||
bool clearTarget;
|
||||
bool clearAffected;
|
||||
std::string range;
|
||||
|
||||
std::vector<Bonus> effects;
|
||||
@ -113,6 +115,7 @@ public:
|
||||
template <typename Handler> void serialize(Handler &h, const int version)
|
||||
{
|
||||
h & description & cost & power & AIValue & smartTarget & range & effects;
|
||||
h & clearTarget & clearAffected;
|
||||
}
|
||||
};
|
||||
|
||||
@ -124,7 +127,7 @@ public:
|
||||
*/
|
||||
const CSpell::LevelInfo& getLevelInfo(const int level) const;
|
||||
public:
|
||||
enum ETargetType {NO_TARGET, CREATURE, OBSTACLE};
|
||||
enum ETargetType {NO_TARGET, CREATURE, OBSTACLE, LOCATION};
|
||||
enum ESpellPositiveness {NEGATIVE = -1, NEUTRAL = 0, POSITIVE = 1};
|
||||
|
||||
struct TargetInfo
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include "mapping/CCampaignHandler.h" //for CCampaignState
|
||||
#include "rmg/CMapGenerator.h" // for CMapGenOptions
|
||||
|
||||
const ui32 version = 750;
|
||||
const ui32 version = 751;
|
||||
const ui32 minSupportedVersion = version;
|
||||
|
||||
class CConnection;
|
||||
|
Loading…
Reference in New Issue
Block a user