Merge remote-tracking branch 'origin/develop' into trophies
# Conflicts: # data/challenges/10.json # locale/tbftss.pot # src/battle/battle.c # src/battle/battle.h # src/battle/script.h # src/galaxy/mission.c
This commit is contained in:
commit
1938c6714c
|
@ -24,7 +24,7 @@ OBJS += objectives.o options.o
|
|||
OBJS += player.o
|
||||
OBJS += quadtree.o
|
||||
OBJS += radar.o resources.o rope.o
|
||||
OBJS += save.o script.o sound.o starfield.o starSystems.o stats.o
|
||||
OBJS += save.o script.o sound.o spawners.o starfield.o starSystems.o stats.o
|
||||
OBJS += testMission.o textures.o text.o title.o transition.o trophies.o
|
||||
OBJS += util.o
|
||||
OBJS += waypoints.o widgets.o
|
||||
|
|
|
@ -10,56 +10,56 @@
|
|||
"texture" : "gfx/capitalShips/csnCorvette01/core.png",
|
||||
"x" : 0,
|
||||
"y" : -140,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette01/component1.png",
|
||||
"x" : 0,
|
||||
"y" : -200,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette01/component2.png",
|
||||
"x" : -34,
|
||||
"y" : 25,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette01/component2.png",
|
||||
"x" : 34,
|
||||
"y" : 25,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette01/component2.png",
|
||||
"x" : -16,
|
||||
"y" : 25,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette01/component2.png",
|
||||
"x" : 16,
|
||||
"y" : 25,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette01/component3.png",
|
||||
"x" : -23,
|
||||
"y" : 242,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette01/component3.png",
|
||||
"x" : 23,
|
||||
"y" : 242,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
}
|
||||
],
|
||||
"engines" : [
|
||||
|
@ -68,35 +68,35 @@
|
|||
"texture" : "gfx/capitalShips/csnCorvette01/engine1.png",
|
||||
"x" : -150,
|
||||
"y" : 293,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/csnCorvette01/engine1.png",
|
||||
"x" : 150,
|
||||
"y" : 293,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/csnCorvette01/engine1.png",
|
||||
"x" : -90,
|
||||
"y" : 293,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/csnCorvette01/engine1.png",
|
||||
"x" : 90,
|
||||
"y" : 293,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/csnCorvette01/engine1.png",
|
||||
"x" : 0,
|
||||
"y" : 296,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
}
|
||||
],
|
||||
"guns" : [
|
||||
|
@ -107,7 +107,7 @@
|
|||
"y" : 200,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -118,7 +118,7 @@
|
|||
"y" : 200,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -129,7 +129,7 @@
|
|||
"y" : 100,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -140,7 +140,7 @@
|
|||
"y" : 100,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -151,7 +151,7 @@
|
|||
"y" : -50,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -162,7 +162,7 @@
|
|||
"y" : 175,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
}
|
||||
|
|
|
@ -10,49 +10,49 @@
|
|||
"texture" : "gfx/capitalShips/csnCorvette02/core.png",
|
||||
"x" : 0,
|
||||
"y" : -140,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette02/component1.png",
|
||||
"x" : -105,
|
||||
"y" : 195,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette02/component1.png",
|
||||
"x" : 105,
|
||||
"y" : 195,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette02/component2.png",
|
||||
"x" : -25,
|
||||
"y" : 18,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette02/component3.png",
|
||||
"x" : 25,
|
||||
"y" : 18,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette02/component4.png",
|
||||
"x" : -67,
|
||||
"y" : -117,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 100,
|
||||
"texture" : "gfx/capitalShips/csnCorvette02/component5.png",
|
||||
"x" : 67,
|
||||
"y" : -117,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
}
|
||||
],
|
||||
"engines" : [
|
||||
|
@ -61,28 +61,28 @@
|
|||
"texture" : "gfx/capitalShips/csnCorvette02/engine1.png",
|
||||
"x" : -70,
|
||||
"y" : 253,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/csnCorvette02/engine2.png",
|
||||
"x" : -25,
|
||||
"y" : 247,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/csnCorvette02/engine2.png",
|
||||
"x" : 25,
|
||||
"y" : 247,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/csnCorvette02/engine1.png",
|
||||
"x" : 70,
|
||||
"y" : 253,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
}
|
||||
],
|
||||
"guns" : [
|
||||
|
@ -93,7 +93,7 @@
|
|||
"y" : -225,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -104,7 +104,7 @@
|
|||
"y" : -60,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -115,7 +115,7 @@
|
|||
"y" : -60,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -126,7 +126,7 @@
|
|||
"y" : 70,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -137,7 +137,7 @@
|
|||
"y" : 110,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -148,7 +148,7 @@
|
|||
"y" : 110,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -159,7 +159,7 @@
|
|||
"y" : 240,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -170,7 +170,7 @@
|
|||
"y" : 240,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
}
|
||||
|
|
|
@ -10,56 +10,56 @@
|
|||
"texture" : "gfx/capitalShips/infCorvette01/component1.png",
|
||||
"x" : -27,
|
||||
"y" : 100,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette01/component2.png",
|
||||
"x" : 27,
|
||||
"y" : 100,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette01/component3.png",
|
||||
"x" : 20,
|
||||
"y" : -17,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette01/component3.png",
|
||||
"x" : -20,
|
||||
"y" : -17,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette01/component4.png",
|
||||
"x" : -21,
|
||||
"y" : -64,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette01/component5.png",
|
||||
"x" : 21,
|
||||
"y" : -64,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette01/component6.png",
|
||||
"x" : -22,
|
||||
"y" : -243,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette01/component6.png",
|
||||
"x" : 22,
|
||||
"y" : -243,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
}
|
||||
],
|
||||
"engines" : [
|
||||
|
@ -68,21 +68,21 @@
|
|||
"texture" : "gfx/capitalShips/infCorvette01/engine1.png",
|
||||
"x" : -50,
|
||||
"y" : 285,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette01/engine1.png",
|
||||
"x" : 50,
|
||||
"y" : 285,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette01/engine2.png",
|
||||
"x" : 0,
|
||||
"y" : 280,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
}
|
||||
],
|
||||
"guns" : [
|
||||
|
@ -93,7 +93,7 @@
|
|||
"y" : 170,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -104,7 +104,7 @@
|
|||
"y" : -150,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -115,7 +115,7 @@
|
|||
"y" : 50,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
},
|
||||
{
|
||||
|
@ -125,7 +125,7 @@
|
|||
"y" : 50,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
},
|
||||
{
|
||||
|
@ -135,7 +135,7 @@
|
|||
"y" : -60,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
},
|
||||
{
|
||||
|
@ -145,7 +145,7 @@
|
|||
"y" : -60,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
}
|
||||
]
|
||||
|
|
|
@ -10,63 +10,63 @@
|
|||
"texture" : "gfx/capitalShips/infCorvette02/core.png",
|
||||
"x" : 0,
|
||||
"y" : -80,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette02/component1.png",
|
||||
"x" : -32,
|
||||
"y" : -75,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette02/component1.png",
|
||||
"x" : 32,
|
||||
"y" : -75,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette02/component2.png",
|
||||
"x" : -95,
|
||||
"y" : 195,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette02/component2.png",
|
||||
"x" : 95,
|
||||
"y" : 195,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette02/component3.png",
|
||||
"x" : -30,
|
||||
"y" : 210,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette02/component3.png",
|
||||
"x" : 30,
|
||||
"y" : 210,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette02/component4.png",
|
||||
"x" : -24,
|
||||
"y" : -20,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette02/component4.png",
|
||||
"x" : 24,
|
||||
"y" : -20,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
}
|
||||
],
|
||||
"guns" : [
|
||||
|
@ -77,7 +77,7 @@
|
|||
"y" : 200,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -88,7 +88,7 @@
|
|||
"y" : 200,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -99,7 +99,7 @@
|
|||
"y" : 200,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -110,7 +110,7 @@
|
|||
"y" : 0,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -121,7 +121,7 @@
|
|||
"y" : 100,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -132,7 +132,7 @@
|
|||
"y" : -125,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -143,7 +143,7 @@
|
|||
"y" : -125,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
}
|
||||
|
@ -154,28 +154,28 @@
|
|||
"texture" : "gfx/capitalShips/infCorvette02/engine1.png",
|
||||
"x" : -75,
|
||||
"y" : 275,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette02/engine2.png",
|
||||
"x" : -20,
|
||||
"y" : 275,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette02/engine3.png",
|
||||
"x" : 20,
|
||||
"y" : 275,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/infCorvette02/engine4.png",
|
||||
"x" : 75,
|
||||
"y" : 275,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -10,63 +10,63 @@
|
|||
"texture" : "gfx/capitalShips/unfCorvette01/core.png",
|
||||
"x" : 0,
|
||||
"y" : -100,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette01/component1.png",
|
||||
"x" : -42,
|
||||
"y" : -36,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette01/component1.png",
|
||||
"x" : 42,
|
||||
"y" : -36,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette01/component2.png",
|
||||
"x" : -40,
|
||||
"y" : -8,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette01/component2.png",
|
||||
"x" : 40,
|
||||
"y" : -8,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette01/component3.png",
|
||||
"x" : -40,
|
||||
"y" : 68,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette01/component4.png",
|
||||
"x" : 40,
|
||||
"y" : 68,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette01/component5.png",
|
||||
"x" : -40,
|
||||
"y" : 128,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette01/component5.png",
|
||||
"x" : 40,
|
||||
"y" : 128,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
}
|
||||
],
|
||||
"engines" : [
|
||||
|
@ -75,28 +75,28 @@
|
|||
"texture" : "gfx/capitalShips/unfCorvette01/engine1.png",
|
||||
"x" : -112,
|
||||
"y" : 281,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/unfCorvette01/engine1.png",
|
||||
"x" : 112,
|
||||
"y" : 281,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/unfCorvette01/engine2.png",
|
||||
"x" : -34,
|
||||
"y" : 268,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/unfCorvette01/engine2.png",
|
||||
"x" : 34,
|
||||
"y" : 268,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
}
|
||||
],
|
||||
"guns" : [
|
||||
|
@ -107,7 +107,7 @@
|
|||
"y" : -250,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -118,7 +118,7 @@
|
|||
"y" : -250,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -129,7 +129,7 @@
|
|||
"y" : 20,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
},
|
||||
{
|
||||
|
@ -139,7 +139,7 @@
|
|||
"y" : 20,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
},
|
||||
{
|
||||
|
@ -149,7 +149,7 @@
|
|||
"y" : 100,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -160,7 +160,7 @@
|
|||
"y" : 100,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -171,7 +171,7 @@
|
|||
"y" : 180,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
},
|
||||
{
|
||||
|
@ -181,7 +181,7 @@
|
|||
"y" : 180,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
}
|
||||
]
|
||||
|
|
|
@ -10,49 +10,49 @@
|
|||
"texture" : "gfx/capitalShips/unfCorvette01/core.png",
|
||||
"x" : 0,
|
||||
"y" : -100,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette02/component1.png",
|
||||
"x" : -22,
|
||||
"y" : -24,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette02/component1.png",
|
||||
"x" : 22,
|
||||
"y" : -24,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette02/component2.png",
|
||||
"x" : -86,
|
||||
"y" : 188,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette02/component2.png",
|
||||
"x" : 86,
|
||||
"y" : 188,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette02/component3.png",
|
||||
"x" : -43,
|
||||
"y" : 151,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 50,
|
||||
"texture" : "gfx/capitalShips/unfCorvette02/component3.png",
|
||||
"x" : 43,
|
||||
"y" : 151,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
}
|
||||
],
|
||||
"engines" : [
|
||||
|
@ -61,28 +61,28 @@
|
|||
"texture" : "gfx/capitalShips/unfCorvette02/engine1.png",
|
||||
"x" : -100,
|
||||
"y" : 286,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/unfCorvette02/engine1.png",
|
||||
"x" : 100,
|
||||
"y" : 286,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/unfCorvette02/engine2.png",
|
||||
"x" : -35,
|
||||
"y" : 289,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
},
|
||||
{
|
||||
"health" : 150,
|
||||
"texture" : "gfx/capitalShips/unfCorvette02/engine2.png",
|
||||
"x" : 35,
|
||||
"y" : 289,
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC"
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC"
|
||||
}
|
||||
],
|
||||
"guns" : [
|
||||
|
@ -93,7 +93,7 @@
|
|||
"y" : -250,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -104,7 +104,7 @@
|
|||
"y" : 30,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -115,7 +115,7 @@
|
|||
"y" : 30,
|
||||
"reloadTime" : 40,
|
||||
"type" : "BT_ROCKET",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_STATIC+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE",
|
||||
"missiles" : 9999
|
||||
},
|
||||
|
@ -126,7 +126,7 @@
|
|||
"y" : 30,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
},
|
||||
{
|
||||
|
@ -136,7 +136,7 @@
|
|||
"y" : -70,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
},
|
||||
{
|
||||
|
@ -146,7 +146,7 @@
|
|||
"y" : -70,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
},
|
||||
{
|
||||
|
@ -156,7 +156,7 @@
|
|||
"y" : 170,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
},
|
||||
{
|
||||
|
@ -166,7 +166,7 @@
|
|||
"y" : 210,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
},
|
||||
{
|
||||
|
@ -176,7 +176,7 @@
|
|||
"y" : 210,
|
||||
"reloadTime" : 10,
|
||||
"type" : "BT_PLASMA",
|
||||
"flags" : "EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"flags" : "EF_NO_KILL_INC+EF_TAKES_DAMAGE+EF_SECONDARY_TARGET",
|
||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||
}
|
||||
]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name" : "Defend Jumpgate Point",
|
||||
"description" : "Defend Jumpgate Point",
|
||||
"name" : "Defend Jumpgate",
|
||||
"description" : "Defend Jumpgate",
|
||||
"background" : "AUTO",
|
||||
"planet" : "AUTO",
|
||||
"music" : "AUTO",
|
||||
|
|
|
@ -49,12 +49,16 @@
|
|||
"y" : 25
|
||||
}
|
||||
],
|
||||
"script" : [
|
||||
"spawners" : [
|
||||
{
|
||||
"function" : "INTERVAL 30",
|
||||
"lines" : [
|
||||
"SPAWN_FIGHTERS Dart SIDE_PIRATE 1 OFFSCREEN"
|
||||
]
|
||||
"name" : "spawner",
|
||||
"types" : "Dart",
|
||||
"side" : "SIDE_PIRATE",
|
||||
"interval" : 30,
|
||||
"limit" : 0,
|
||||
"total" : 0,
|
||||
"step" : 1,
|
||||
"offscreen" : 1
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"name" : "Destroy INF Klondike and INF Canfield",
|
||||
"description" : "Destroy INF Klondike and INF Canfield",
|
||||
"background" : "AUTO",
|
||||
"planet" : "AUTO",
|
||||
"music" : "AUTO",
|
||||
"player" : {
|
||||
"type" : "ATAF",
|
||||
"side" : "SIDE_ALLIES",
|
||||
"pilot" : "-",
|
||||
"squadron" : "-",
|
||||
"x" : 25,
|
||||
"y" : 25
|
||||
},
|
||||
"challenge" : {
|
||||
"killLimit" : 2,
|
||||
"timeLimit" : 90,
|
||||
"challenges" : [
|
||||
{
|
||||
"type" : "CHALLENGE_TIME",
|
||||
"value" : 50
|
||||
},
|
||||
{
|
||||
"type" : "CHALLENGE_TIME",
|
||||
"value" : 90
|
||||
},
|
||||
{
|
||||
"type" : "CHALLENGE_SHOT_ACCURACY",
|
||||
"value" : 90
|
||||
}
|
||||
]
|
||||
},
|
||||
"capitalShips" : [
|
||||
{
|
||||
"name" : "INF Klondike",
|
||||
"types" : "INF Corvette 01",
|
||||
"side" : "SIDE_PANDORAN",
|
||||
"x" : 23,
|
||||
"y" : 23
|
||||
},
|
||||
{
|
||||
"name" : "INF Canfield",
|
||||
"types" : "INF Corvette 01",
|
||||
"side" : "SIDE_PANDORAN",
|
||||
"x" : 27,
|
||||
"y" : 27
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,10 +1,7 @@
|
|||
{
|
||||
"name" : "Civilian",
|
||||
"health" : 15,
|
||||
"shield" : 0,
|
||||
"speed" : 2,
|
||||
"reloadTime" : 0,
|
||||
"shieldRechargeRate" : 0,
|
||||
"texture" : "gfx/craft/civilian01.png",
|
||||
"flags" : "EF_MISSION_TARGET+EF_RETREATING+EF_TAKES_DAMAGE",
|
||||
"aiFlags" : "AIF_GOAL_JUMPGATE+AIF_AVOIDS_COMBAT+AIF_FOLLOWS_PLAYER"
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
{
|
||||
"name" : "INF Tug",
|
||||
"health" : 50,
|
||||
"shield" : 0,
|
||||
"speed" : 1.85,
|
||||
"reloadTime" : 10,
|
||||
"shieldRechargeRate" : 0,
|
||||
"texture" : "gfx/craft/infTug.png",
|
||||
"flags" : "EF_HAS_ROPE+EF_TAKES_DAMAGE",
|
||||
"aiFlags" : "AIF_AVOIDS_COMBAT+AIF_TOWS"
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
"shield" : 50,
|
||||
"speed" : 1.5,
|
||||
"reloadTime" : 10,
|
||||
"shieldRechargeRate" : 0,
|
||||
"texture" : "gfx/craft/munitionsTransport.png",
|
||||
"flags" : "EF_TAKES_DAMAGE",
|
||||
"aiFlags" : "AIF_AVOIDS_COMBAT"
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
"health" : 15,
|
||||
"shield" : 15,
|
||||
"speed" : 2,
|
||||
"reloadTime" : 0,
|
||||
"shieldRechargeRate" : 60,
|
||||
"texture" : "gfx/craft/shuttle.png",
|
||||
"flags" : "EF_COLLECTS_ITEMS+EF_TAKES_DAMAGE+EF_NO_EPIC",
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
{
|
||||
"name" : "Tug",
|
||||
"health" : 50,
|
||||
"shield" : 0,
|
||||
"speed" : 1.85,
|
||||
"reloadTime" : 10,
|
||||
"shieldRechargeRate" : 0,
|
||||
"texture" : "gfx/craft/tug.png",
|
||||
"guns" : [
|
||||
{
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
{
|
||||
"name" : "CannonDart",
|
||||
"health" : 15,
|
||||
"shield" : 0,
|
||||
"speed" : 2.1,
|
||||
"reloadTime" : 24,
|
||||
"shieldRechargeRate" : 0,
|
||||
"texture" : "gfx/fighters/dart01.png",
|
||||
"guns" : [
|
||||
{
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
{
|
||||
"name" : "Dart",
|
||||
"health" : 15,
|
||||
"shield" : 0,
|
||||
"speed" : 2.1,
|
||||
"reloadTime" : 24,
|
||||
"shieldRechargeRate" : 0,
|
||||
"texture" : "gfx/fighters/dart01.png",
|
||||
"guns" : [
|
||||
{
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
{
|
||||
"name" : "MissileDart",
|
||||
"health" : 15,
|
||||
"shield" : 0,
|
||||
"speed" : 2.1,
|
||||
"reloadTime" : 24,
|
||||
"shieldRechargeRate" : 0,
|
||||
"texture" : "gfx/fighters/dart01.png",
|
||||
"missiles" : 999,
|
||||
"flags" : "EF_TAKES_DAMAGE"
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
{
|
||||
"name" : "SimpleDart",
|
||||
"health" : 15,
|
||||
"shield" : 0,
|
||||
"speed" : 2.1,
|
||||
"reloadTime" : 24,
|
||||
"shieldRechargeRate" : 0,
|
||||
"texture" : "gfx/fighters/dart01.png",
|
||||
"guns" : [
|
||||
{
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
{
|
||||
"name" : "StaticDart",
|
||||
"health" : 15,
|
||||
"shield" : 0,
|
||||
"speed" : 0,
|
||||
"reloadTime" : 24,
|
||||
"shieldRechargeRate" : 0,
|
||||
"texture" : "gfx/fighters/dart01.png",
|
||||
"flags" : "EF_TAKES_DAMAGE"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"name" : "Swarmer",
|
||||
"health" : 5,
|
||||
"speed" : 2,
|
||||
"reloadTime" : 8,
|
||||
"texture" : "gfx/fighters/swarmer.png",
|
||||
"guns" : [
|
||||
{
|
||||
"type" : "BT_PARTICLE",
|
||||
"x" : 0,
|
||||
"y" : 0
|
||||
}
|
||||
],
|
||||
"flags" : "EF_TAKES_DAMAGE"
|
||||
}
|
|
@ -1,10 +1,8 @@
|
|||
{
|
||||
"name" : "UnarmedDart",
|
||||
"health" : 15,
|
||||
"shield" : 0,
|
||||
"speed" : 2.1,
|
||||
"reloadTime" : 24,
|
||||
"shieldRechargeRate" : 0,
|
||||
"texture" : "gfx/fighters/dart01.png",
|
||||
"flags" : "EF_TAKES_DAMAGE"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"name" : "Clarke Defence #5",
|
||||
"description" : "",
|
||||
"requires" : 28,
|
||||
"background" : "gfx/backgrounds/background06.jpg",
|
||||
"planet" : "gfx/planets/bluePlanet.png",
|
||||
"music" : "music/battle/heroism.ogg",
|
||||
"unwinnable" : 1,
|
||||
"objectives" : [
|
||||
{
|
||||
"description" : "Eliminate all enemy forces",
|
||||
"targetName" : "Enemy",
|
||||
"targetValue" : 1,
|
||||
"targetType" : "TT_DESTROY",
|
||||
"isEliminateAll" : 1
|
||||
}
|
||||
],
|
||||
"player" : {
|
||||
"type" : "Lynx",
|
||||
"side" : "SIDE_ALLIES",
|
||||
"pilot" : "-",
|
||||
"squadron" : "-",
|
||||
"x" : 25,
|
||||
"y" : 45
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name" : "Rebel Assault #1",
|
||||
"description" : "",
|
||||
"requires" : 28,
|
||||
"requires" : 99,
|
||||
"background" : "gfx/backgrounds/background03.jpg",
|
||||
"planet" : "gfx/planets/spirit.png",
|
||||
"music" : "music/battle/InnerCore_Low.ogg",
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: TBFTSS: The Pandoran War\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-12 15:00:11+0000\n"
|
||||
"POT-Creation-Date: 2016-03-13 10:54:24+0000\n"
|
||||
"PO-Revision-Date: ???\n"
|
||||
"Last-Translator: ???\n"
|
||||
"Language-Team: ???\n"
|
||||
|
@ -1216,3 +1216,30 @@ msgstr ""
|
|||
msgid "Likewise. Maybe we'll get it do it again some day, though a part of me really hopes we won't need to ...."
|
||||
msgstr ""
|
||||
|
||||
msgid "Destroy all Darts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Destroy all Lynxes"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disable all targets"
|
||||
msgstr ""
|
||||
|
||||
msgid "60 second battle"
|
||||
msgstr ""
|
||||
|
||||
msgid "Pass all Waypoints"
|
||||
msgstr ""
|
||||
|
||||
msgid "Defend Jumpgate"
|
||||
msgstr ""
|
||||
|
||||
msgid "Collect Packages"
|
||||
msgstr ""
|
||||
|
||||
msgid "Rescue Civilians"
|
||||
msgstr ""
|
||||
|
||||
msgid "Destroy INF Klondike and INF Canfield"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ void doAI(void)
|
|||
|
||||
if ((self->aiFlags & AIF_GOAL_JUMPGATE) && nearJumpgate())
|
||||
{
|
||||
/* near jumpgate point, but you might decide to continue to fight, anyway */
|
||||
/* near jumpgate, but you might decide to continue to fight, anyway */
|
||||
if ((self->aiFlags & AIF_COVERS_RETREAT) && rand() % 3)
|
||||
{
|
||||
return;
|
||||
|
|
|
@ -47,6 +47,7 @@ void initBattle(void)
|
|||
battle.effectTail = &battle.effectHead;
|
||||
battle.objectiveTail = &battle.objectiveHead;
|
||||
battle.locationTail = &battle.locationHead;
|
||||
battle.spawnerTail = &battle.spawnerHead;
|
||||
|
||||
app.delegate.logic = &logic;
|
||||
app.delegate.draw = &draw;
|
||||
|
@ -151,6 +152,8 @@ static void doBattle(void)
|
|||
|
||||
if (player != NULL)
|
||||
{
|
||||
doSpawners();
|
||||
|
||||
doLocations();
|
||||
|
||||
doMessageBox();
|
||||
|
@ -158,10 +161,10 @@ static void doBattle(void)
|
|||
if (battle.status == MS_IN_PROGRESS)
|
||||
{
|
||||
doScript();
|
||||
|
||||
|
||||
if (battle.stats[STAT_TIME]++ % FPS == 0)
|
||||
{
|
||||
runScriptTimeFunctions();
|
||||
runScriptFunction("TIME %d", battle.stats[STAT_TIME]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -388,6 +391,7 @@ void destroyBattle(void)
|
|||
Effect *e;
|
||||
Objective *o;
|
||||
Location *l;
|
||||
Spawner *s;
|
||||
|
||||
while (battle.entityHead.next)
|
||||
{
|
||||
|
@ -437,6 +441,14 @@ void destroyBattle(void)
|
|||
}
|
||||
battle.locationTail = &battle.locationHead;
|
||||
|
||||
while (battle.spawnerHead.next)
|
||||
{
|
||||
s = battle.spawnerHead.next;
|
||||
battle.spawnerHead.next = s->next;
|
||||
free(s);
|
||||
}
|
||||
battle.spawnerTail = &battle.spawnerHead;
|
||||
|
||||
cJSON_Delete(battle.missionJSON);
|
||||
|
||||
resetHud();
|
||||
|
|
|
@ -85,6 +85,8 @@ extern void updateAccuracyStats(unsigned int *stats);
|
|||
extern void clearInput(void);
|
||||
extern void runScriptTimeFunctions(void);
|
||||
extern void awardPostMissionTrophies(void);
|
||||
extern void runScriptFunction(const char *format, ...);
|
||||
extern void doSpawners(void);
|
||||
|
||||
extern App app;
|
||||
extern Battle battle;
|
||||
|
|
|
@ -203,7 +203,7 @@ static void checkCollisions(Bullet *b)
|
|||
}
|
||||
|
||||
/* assuming that health <= 0 will always mean killed */
|
||||
if (e->health <= 0 && b->owner == player)
|
||||
if (e->health <= 0 && b->owner == player && (!(e->flags & EF_NO_KILL_INC)))
|
||||
{
|
||||
battle.stats[STAT_ENEMIES_KILLED_PLAYER]++;
|
||||
battle.stats[STAT_EPIC_KILL_STREAK]++;
|
||||
|
|
|
@ -297,13 +297,15 @@ static void die(void)
|
|||
|
||||
self->alive = ALIVE_DEAD;
|
||||
|
||||
addDebris(self->x, self->y, 50);
|
||||
addLargeExplosion();
|
||||
|
||||
addDebris(self->x, self->y, 12);
|
||||
|
||||
for (e = battle.entityHead.next ; e != NULL ; e = e->next)
|
||||
{
|
||||
if (e->owner == self)
|
||||
{
|
||||
e->health = 0;
|
||||
e->alive = ALIVE_DEAD;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -48,6 +48,7 @@ extern void updateObjective(char *name, int type);
|
|||
extern char **getFileList(char *dir, int *count);
|
||||
extern int getJSONValue(cJSON *node, char *name, int defValue);
|
||||
extern char *getTranslatedString(char *string);
|
||||
extern void addLargeExplosion(void);
|
||||
|
||||
extern Battle battle;
|
||||
extern Entity *self;
|
||||
|
|
|
@ -284,6 +284,40 @@ void addSmallExplosion(void)
|
|||
}
|
||||
}
|
||||
|
||||
void addLargeExplosion(void)
|
||||
{
|
||||
int i;
|
||||
Effect *e;
|
||||
|
||||
for (i = 0 ; i < 64 ; i++)
|
||||
{
|
||||
e = malloc(sizeof(Effect));
|
||||
memset(e, 0, sizeof(Effect));
|
||||
battle.effectTail->next = e;
|
||||
battle.effectTail = e;
|
||||
|
||||
e->type = EFFECT_TEXTURE;
|
||||
|
||||
e->x = self->x + rand() % 255 - rand() % 255;
|
||||
e->y = self->y + rand() % 255 - rand() % 255;
|
||||
e->dx = (rand() % 25) - (rand() % 25);
|
||||
e->dx *= 0.01;
|
||||
e->dy = (rand() % 25) - (rand() % 25);
|
||||
e->dy *= 0.01;
|
||||
e->texture = explosionTexture;
|
||||
e->size = 128 + (rand() % 512);
|
||||
e->r = 255;
|
||||
|
||||
setRandomFlameHue(e);
|
||||
|
||||
e->a = 128 + (rand() % 128);
|
||||
e->health = e->a;
|
||||
|
||||
e->x -= e->size / 2;
|
||||
e->y -= e->size / 2;
|
||||
}
|
||||
}
|
||||
|
||||
void addMissileExplosion(Bullet *b)
|
||||
{
|
||||
int i;
|
||||
|
|
|
@ -327,9 +327,12 @@ void doFighter(void)
|
|||
{
|
||||
if (self->side != SIDE_ALLIES)
|
||||
{
|
||||
battle.stats[STAT_ENEMIES_KILLED]++;
|
||||
if (!(self->flags & EF_NO_KILL_INC))
|
||||
{
|
||||
battle.stats[STAT_ENEMIES_KILLED]++;
|
||||
|
||||
runScriptFunction("ENEMIES_KILLED %d", battle.stats[STAT_ENEMIES_KILLED]);
|
||||
runScriptFunction("ENEMIES_KILLED %d", battle.stats[STAT_ENEMIES_KILLED]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -715,10 +718,10 @@ static void loadFighterDef(char *filename)
|
|||
STRNCPY(e->name, cJSON_GetObjectItem(root, "name")->valuestring, MAX_NAME_LENGTH);
|
||||
STRNCPY(e->defName, e->name, MAX_NAME_LENGTH);
|
||||
e->health = e->maxHealth = cJSON_GetObjectItem(root, "health")->valueint;
|
||||
e->shield = e->maxShield = cJSON_GetObjectItem(root, "shield")->valueint;
|
||||
e->shield = e->maxShield = getJSONValue(root, "shield", 0);
|
||||
e->speed = cJSON_GetObjectItem(root, "speed")->valuedouble;
|
||||
e->reloadTime = cJSON_GetObjectItem(root, "reloadTime")->valueint;
|
||||
e->shieldRechargeRate = cJSON_GetObjectItem(root, "shieldRechargeRate")->valueint;
|
||||
e->reloadTime = getJSONValue(root, "reloadTime", 0);
|
||||
e->shieldRechargeRate = getJSONValue(root, "shieldRechargeRate", 0);
|
||||
e->texture = getTexture(cJSON_GetObjectItem(root, "texture")->valuestring);
|
||||
|
||||
SDL_QueryTexture(e->texture, NULL, NULL, &e->w, &e->h);
|
||||
|
|
|
@ -34,7 +34,6 @@ extern void activateLocations(char *locations);
|
|||
void activateObjectives(char *objectives);
|
||||
extern int showingMessageBoxes(void);
|
||||
extern char *getTranslatedString(char *string);
|
||||
extern void spawnScriptFighter(char *fighters, char *side, int num, char *location);
|
||||
extern void activateNextWaypoint(int id);
|
||||
extern void activateJumpgate(int activate);
|
||||
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
/*
|
||||
Copyright (C) 2015-2016 Parallel Realities
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include "spawners.h"
|
||||
|
||||
void doSpawners(void)
|
||||
{
|
||||
Entity *e;
|
||||
Spawner *s;
|
||||
char *type;
|
||||
int i, num;
|
||||
|
||||
for (s = battle.spawnerHead.next ; s != NULL ; s = s->next)
|
||||
{
|
||||
if (s->active && --s->time <= 0)
|
||||
{
|
||||
num = s->step;
|
||||
|
||||
if (s->limit)
|
||||
{
|
||||
num = MIN(s->step, s->total);
|
||||
|
||||
s->total -= num;
|
||||
}
|
||||
|
||||
for (i = 0 ; i < num ; i++)
|
||||
{
|
||||
type = s->types[rand() % s->numTypes];
|
||||
|
||||
e = spawnFighter(type, 0, 0, s->side);
|
||||
|
||||
if (s->offscreen)
|
||||
{
|
||||
e->x = player->x;
|
||||
e->y = player->y;
|
||||
}
|
||||
else
|
||||
{
|
||||
e->x = rand() % 2 ? 0 : BATTLE_AREA_WIDTH;
|
||||
e->y = rand() % 2 ? 0 : BATTLE_AREA_HEIGHT;
|
||||
}
|
||||
|
||||
e->x += (rand() % 2) ? -SCREEN_WIDTH : SCREEN_WIDTH;
|
||||
e->y += (rand() % 2) ? -SCREEN_HEIGHT : SCREEN_HEIGHT;
|
||||
|
||||
e->aiFlags |= AIF_UNLIMITED_RANGE;
|
||||
}
|
||||
|
||||
s->time = s->interval;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
Copyright (C) 2015-2016 Parallel Realities
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include "../common.h"
|
||||
|
||||
extern Entity *spawnFighter(char *name, int x, int y, int side);
|
||||
|
||||
extern Battle battle;
|
||||
extern Entity *player;
|
|
@ -109,7 +109,7 @@ static int challengeFinished(void)
|
|||
}
|
||||
|
||||
/* disabled enemies count as killed during challenges - not player exclusive, but no need to worry about AI contributions here */
|
||||
if (game.currentMission->challengeData.killLimit > 0 && (battle.stats[STAT_ENEMIES_KILLED_PLAYER] + battle.stats[STAT_ENEMIES_DISABLED]) >= game.currentMission->challengeData.killLimit)
|
||||
if (game.currentMission->challengeData.killLimit > 0 && (battle.stats[STAT_ENEMIES_KILLED_PLAYER] + battle.stats[STAT_CAPITAL_SHIPS_DESTROYED] + battle.stats[STAT_ENEMIES_DISABLED]) >= game.currentMission->challengeData.killLimit)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -96,6 +96,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#define EF_AI_TARGET (2 << 13)
|
||||
#define EF_AI_LEADER (2 << 14)
|
||||
#define EF_ROPED_ATTACHED (2 << 15)
|
||||
#define EF_NO_KILL_INC (2 << 16)
|
||||
|
||||
#define AIF_NONE 0
|
||||
#define AIF_FOLLOWS_PLAYER (2 << 0)
|
||||
|
|
|
@ -27,6 +27,7 @@ static void loadCapitalShips(cJSON *node);
|
|||
static void loadEntities(cJSON *node);
|
||||
static void loadItems(cJSON *node);
|
||||
static void loadLocations(cJSON *node);
|
||||
static void loadSpawners(cJSON *node);
|
||||
static unsigned long hashcode(const char *str);
|
||||
static void loadEpicData(cJSON *node);
|
||||
static char *getAutoBackground(char *filename);
|
||||
|
@ -161,6 +162,8 @@ void loadMission(char *filename)
|
|||
|
||||
loadLocations(cJSON_GetObjectItem(root, "locations"));
|
||||
|
||||
loadSpawners(cJSON_GetObjectItem(root, "spawners"));
|
||||
|
||||
if (cJSON_GetObjectItem(root, "epic"))
|
||||
{
|
||||
loadEpicData(cJSON_GetObjectItem(root, "epic"));
|
||||
|
@ -585,13 +588,14 @@ static void loadEntities(cJSON *node)
|
|||
y = (cJSON_GetObjectItem(node, "y")->valuedouble / BATTLE_AREA_CELLS) * BATTLE_AREA_HEIGHT;
|
||||
name = NULL;
|
||||
groupName = NULL;
|
||||
flags = -1;
|
||||
|
||||
name = getJSONValueStr(node, "name", NULL);
|
||||
groupName = getJSONValueStr(node, "groupName", NULL);
|
||||
number = getJSONValue(node, "number", 1);
|
||||
active = getJSONValue(node, "active", 1);
|
||||
scatter = getJSONValue(node, "scatter", 1);
|
||||
|
||||
|
||||
if (cJSON_GetObjectItem(node, "flags"))
|
||||
{
|
||||
flags = flagsToLong(cJSON_GetObjectItem(node, "flags")->valuestring, &addFlags);
|
||||
|
@ -624,7 +628,7 @@ static void loadEntities(cJSON *node)
|
|||
{
|
||||
STRNCPY(e->groupName, groupName, MAX_NAME_LENGTH);
|
||||
}
|
||||
|
||||
|
||||
if (flags != -1)
|
||||
{
|
||||
if (addFlags)
|
||||
|
@ -757,14 +761,43 @@ static void loadLocations(cJSON *node)
|
|||
STRNCPY(l->name, cJSON_GetObjectItem(node, "name")->valuestring, MAX_NAME_LENGTH);
|
||||
l->x = (cJSON_GetObjectItem(node, "x")->valuedouble / BATTLE_AREA_CELLS) * BATTLE_AREA_WIDTH;
|
||||
l->y = (cJSON_GetObjectItem(node, "y")->valuedouble / BATTLE_AREA_CELLS) * BATTLE_AREA_HEIGHT;
|
||||
|
||||
l->size = cJSON_GetObjectItem(node, "size")->valueint;
|
||||
|
||||
active = getJSONValue(node, "active", 1);
|
||||
l->active = active = getJSONValue(node, "active", 1);
|
||||
|
||||
l->x += (SCREEN_WIDTH / 2);
|
||||
l->y += (SCREEN_HEIGHT / 2);
|
||||
l->active = active;
|
||||
|
||||
|
||||
node = node->next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void loadSpawners(cJSON *node)
|
||||
{
|
||||
int active;
|
||||
Spawner *s;
|
||||
|
||||
if (node)
|
||||
{
|
||||
node = node->child;
|
||||
|
||||
while (node)
|
||||
{
|
||||
s = malloc(sizeof(Spawner));
|
||||
memset(s, 0, sizeof(Spawner));
|
||||
battle.spawnerTail->next = s;
|
||||
battle.spawnerTail = s;
|
||||
|
||||
STRNCPY(s->name, cJSON_GetObjectItem(node, "name")->valuestring, MAX_NAME_LENGTH);
|
||||
s->types = toTypeArray(cJSON_GetObjectItem(node, "types")->valuestring, &s->numTypes);
|
||||
s->side = lookup(cJSON_GetObjectItem(node, "side")->valuestring);
|
||||
s->interval = cJSON_GetObjectItem(node, "interval")->valueint * FPS;
|
||||
s->limit = cJSON_GetObjectItem(node, "limit")->valueint;
|
||||
s->total = cJSON_GetObjectItem(node, "total")->valueint;
|
||||
s->step = cJSON_GetObjectItem(node, "step")->valueint;
|
||||
s->offscreen = getJSONValue(node, "offscreen", 0);
|
||||
s->active = active = getJSONValue(node, "active", 1);
|
||||
|
||||
node = node->next;
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ typedef struct Entity Entity;
|
|||
typedef struct Bullet Bullet;
|
||||
typedef struct Debris Debris;
|
||||
typedef struct Effect Effect;
|
||||
typedef struct Spawner Spawner;
|
||||
typedef struct Objective Objective;
|
||||
typedef struct StarSystem StarSystem;
|
||||
typedef struct Challenge Challenge;
|
||||
|
@ -302,6 +303,21 @@ struct Quadtree {
|
|||
Quadtree *node[4];
|
||||
};
|
||||
|
||||
struct Spawner {
|
||||
char name[MAX_NAME_LENGTH];
|
||||
char **types;
|
||||
int numTypes;
|
||||
int side;
|
||||
int time;
|
||||
int interval;
|
||||
int limit;
|
||||
int total;
|
||||
int step;
|
||||
int offscreen;
|
||||
int active;
|
||||
Spawner *next;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
int entId;
|
||||
SDL_Point camera;
|
||||
|
@ -331,6 +347,7 @@ typedef struct {
|
|||
Effect effectHead, *effectTail;
|
||||
Objective objectiveHead, *objectiveTail;
|
||||
Location locationHead, *locationTail;
|
||||
Spawner spawnerHead, *spawnerTail;
|
||||
struct cJSON *missionJSON;
|
||||
unsigned int stats[STAT_MAX];
|
||||
Quadtree quadtree;
|
||||
|
|
|
@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
static Lookup head;
|
||||
static Lookup *tail;
|
||||
|
||||
static void addLookup(char *name, long value);
|
||||
static void addLookup(char *name, long value);
|
||||
|
||||
void initLookups(void)
|
||||
{
|
||||
|
@ -60,6 +60,7 @@ void initLookups(void)
|
|||
addLookup("EF_SECONDARY_TARGET", EF_SECONDARY_TARGET);
|
||||
addLookup("EF_AI_TARGET", EF_AI_TARGET);
|
||||
addLookup("EF_AI_LEADER", EF_AI_LEADER);
|
||||
addLookup("EF_NO_KILL_INC", EF_NO_KILL_INC);
|
||||
|
||||
addLookup("AIF_NONE", AIF_NONE);
|
||||
addLookup("AIF_MOVES_TO_PLAYER", AIF_MOVES_TO_PLAYER);
|
||||
|
|
|
@ -109,6 +109,10 @@ function extractJSON($filename)
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (strpos($filename, "challenges") !== false)
|
||||
{
|
||||
addString($json->{"description"});
|
||||
}
|
||||
}
|
||||
|
||||
function recurseDir($dir)
|
||||
|
|
Loading…
Reference in New Issue