Back before Christmas I wrote out some rooms and enemies, which were slightly flawed at the time.
Flaws Included
- Need different room sizes
- Need different movement patterns
- ability to change tile under enemy spawn
Is the xml documentation on the wiki up to date? I'd like to see if I could fix some of the issues I was having before shipping it off to Chris to reduce Arcen workload. Cheers.
Q: The wiki example of a ship: https://www.arcengames.com/mediawiki/index.php?title=Starward_Rogue:XML_-_GameEntity_Definitions contains turning_resistance="2.25" has this been deprecated?
Q: How does the PeriodicMovementMode coding work? I've tried several things, but it can't get it to do anything. No current enemies use it, so it might be nonfunctional at this juncture.
And it happens with ShadowDash....
...And Keith fixed it before I could complete my bug testing in a systematic way.
Arg. You guys keep doing this wrong. This is how this is supposed to work.
- I spend 2 hours testing each of the PeriodicMovement modes.
- I spend 15 minutes to write up the error and submit it to mantis.
- It sits on mantis for a few weeks to months.
- You reject the bug on the grounds of nonreproducibility.
- I repeat the first 4 steps.
- You announce you are switching to a new engine.
- I repeat the first 4 steps again.
- You fix it.
Disregarding the process is very nontraditional.
Q: Why can't I use a loop within a BulletPattern?
A: Loop is defined to work within a Bullet, so you have to create a bullet first, then you can have a loop and within it a Bullet pattern.
This would work:
<bullet_pattern name="ExamplePattern">
<bullet angle="0" speed="0">
<loop iterations="5">
<spawn>
<bullet_pattern>
$FlagShot SPEED=260 ANGLE=0 SHOT=WingsRed
</bullet_pattern>
</spawn>
</loop>
</bullet>
</bullet_pattern>
This does not work:
<bullet_pattern name="ExamplePatternNotWork">
<loop iterations="5">
$FlagShot SPEED=260 ANGLE=0 SHOT=WingsRed
</loop>
</bullet_pattern>
Can you declare a variable as a variable?Give it a try ;)
I.e., something like:
SHOT1= WidowShotRed
followed by
SHOT = "[SHOT1]"
in another <var>?
And then if I exit out and restart SR, then everything works just fine.Standard Microsoft Engineering.
<bullet_pattern name="FlagUS2Pattern">
$FlagShot88 SPEED=260 ANGLE=0 SHOT1=WingsBlue SHOT2=WingsRed SPOSY=-50
</bullet_pattern>
Bullet_vars.xml <var name="FlagShot">
<bullet angle="[ANGLE]" speed="[SPEED]" shot_type="[SHOT]" spawn_offset ="[SPOSX],[SPOSY]">
</var>
<var name="FlagShot88">
$FlagShot SHOT=[SHOT1] SPOSX=0
$FlagShot SHOT=[SHOT2] SPOSX=10
</var>
and now I'm back to trying to make a weapon system that shoots flags.
I just spent longer than I care to think about because this:
...
<wait time="0.03" />
</bullet_pattern>
</spawn>
crashes, but this
...
</bullet_pattern>
</spawn>
<wait time="0.03" />
works just fine.
What, like.... shoots actual flags, like the kind that go on poles and wave around? Or am I just being dense?
Code:
<system name="ShieldAddSystem"
category="DirectUseSystem"
shot_type="Invisible"
damage_type="Ballistic"
attack_power="1" fire_rate="2"
range_actual="500" cue_time="0"
shots_per_salvo="1"
targeting_logic="Dumbfire" firing_timing="AllTheTime"
image_name="Invisible"
initial_firing_delay="0"
distance_threshold_modifiers_applied_to_nearby_entities="500"
modifiers_applied_to_nearby_entities_can_target_allies="true"
modifiers_applied_to_nearby_entities_can_target_enemies="true"
>
<modifier target="NearbyEntities" type="MaxHealth" math="add" magnitude="50" timing="OnUse_ParentEntity"/>
</system>
<entity name="bob" category="Ship" ship_category="Wander_3x3"
display_name="bob"
behavior="Attacker"
speed="100"
max_health="100"
periodic_movement_mode_interval_min="2"
periodic_movement_mode_interval_max="5"
image_folder="Enemy_Pursuers"
image_name="ChargerWhite"
>
<hitbox radius="26" />
<periodic_movement_mode type="ShadowDash" chance_to_target_player="50" shockwave_radius ="50">
<modifier type="MovementSpeed" math="Set" magnitude="1000" />
</periodic_movement_mode>
<periodic_movement_mode type="Reposition" related_point="5,5">
<modifier type="MovementSpeed" math="Set" magnitude="1000" />
</periodic_movement_mode>
</entity>
The code is available in a zip earlier in the thread. There is a lot of it. Below is just a part sufficient to get the idea.
<entity name="RocketFrog" ship_category="Wander_3x3"
category="Ship"
display_name="Rocket Frog"
behavior="Wanderer"
speed="50" acceleration="100"
max_health="100"
image_folder="Enemy_Pursuers" image_name="ChargerWhite"
time_to_visually_rotate_180_degrees="0.7"
>
<hitbox radius="26" />
<system type="FlagTestSystem" offset="0,0" />
</entity>
<system name="FlagTestSystem"
category="Weapon"
shot_type="BulletPointedYellow"
damage_type="Ballistic"
attack_power="-1" fire_rate="3"
range_actual="2000" cue_time="0"
shots_per_salvo="1"
targeting_logic="Direct" firing_timing="AllTheTime"
image_name="Invisible" special_bullet_patterns="FlagPIRAPattern"
initial_firing_delay="1"
>
</system>
<var name="FlagShot2134312">
$FlagShot SHOT=[SHOT2] SPOSX=0
$FlagShot SHOT=[SHOT2] SPOSX=10
$FlagShot SHOT=[SHOT1] SPOSX=20
$FlagShot SHOT=[SHOT2] SPOSX=30
$FlagShot SHOT=[SHOT2] SPOSX=40
$FlagShot SHOT=[SHOT2] SPOSX=50
$FlagShot SHOT=[SHOT1] SPOSX=60
$FlagShot SHOT=[SHOT1] SPOSX=70
$FlagShot SHOT=[SHOT1] SPOSX=80
$FlagShot SHOT=[SHOT1] SPOSX=90
$FlagShot SHOT=[SHOT2] SPOSX=100
$FlagShot SHOT=[SHOT2] SPOSX=110
$FlagShot SHOT=[SHOT2] SPOSX=120
$FlagShot SHOT=[SHOT1] SPOSX=130
$FlagShot SHOT=[SHOT2] SPOSX=140
$FlagShot SHOT=[SHOT2] SPOSX=150
</var>
<var name="FlagShot1316131">
$FlagShot SHOT=[SHOT2] SPOSX=0
$FlagShot SHOT=[SHOT1] SPOSX=10
$FlagShot SHOT=[SHOT1] SPOSX=20
$FlagShot SHOT=[SHOT1] SPOSX=30
$FlagShot SHOT=[SHOT2] SPOSX=40
$FlagShot SHOT=[SHOT1] SPOSX=50
$FlagShot SHOT=[SHOT1] SPOSX=60
$FlagShot SHOT=[SHOT1] SPOSX=70
$FlagShot SHOT=[SHOT1] SPOSX=80
$FlagShot SHOT=[SHOT1] SPOSX=90
$FlagShot SHOT=[SHOT1] SPOSX=100
$FlagShot SHOT=[SHOT2] SPOSX=110
$FlagShot SHOT=[SHOT1] SPOSX=120
$FlagShot SHOT=[SHOT1] SPOSX=130
$FlagShot SHOT=[SHOT1] SPOSX=140
$FlagShot SHOT=[SHOT2] SPOSX=150
</var>
<var name="FlagShot484">
$FlagShot SHOT=[SHOT2] SPOSX=0
$FlagShot SHOT=[SHOT2] SPOSX=10
$FlagShot SHOT=[SHOT2] SPOSX=20
$FlagShot SHOT=[SHOT2] SPOSX=30
$FlagShot SHOT=[SHOT1] SPOSX=40
$FlagShot SHOT=[SHOT1] SPOSX=50
$FlagShot SHOT=[SHOT1] SPOSX=60
$FlagShot SHOT=[SHOT1] SPOSX=70
$FlagShot SHOT=[SHOT1] SPOSX=80
$FlagShot SHOT=[SHOT1] SPOSX=90
$FlagShot SHOT=[SHOT1] SPOSX=100
$FlagShot SHOT=[SHOT1] SPOSX=110
$FlagShot SHOT=[SHOT2] SPOSX=120
$FlagShot SHOT=[SHOT2] SPOSX=130
$FlagShot SHOT=[SHOT2] SPOSX=140
$FlagShot SHOT=[SHOT2] SPOSX=150
</var>
<var name="FlagShot4122214">
$FlagShot SHOT=[SHOT2] SPOSX=0
$FlagShot SHOT=[SHOT2] SPOSX=10
$FlagShot SHOT=[SHOT2] SPOSX=20
$FlagShot SHOT=[SHOT2] SPOSX=30
$FlagShot SHOT=[SHOT1] SPOSX=40
$FlagShot SHOT=[SHOT2] SPOSX=50
$FlagShot SHOT=[SHOT2] SPOSX=60
$FlagShot SHOT=[SHOT1] SPOSX=70
$FlagShot SHOT=[SHOT1] SPOSX=80
$FlagShot SHOT=[SHOT2] SPOSX=90
$FlagShot SHOT=[SHOT2] SPOSX=100
$FlagShot SHOT=[SHOT1] SPOSX=110
$FlagShot SHOT=[SHOT2] SPOSX=120
$FlagShot SHOT=[SHOT2] SPOSX=130
$FlagShot SHOT=[SHOT2] SPOSX=140
$FlagShot SHOT=[SHOT2] SPOSX=150
</var>
<var name="FlagShot3116113">
$FlagShot SHOT=[SHOT2] SPOSX=0
$FlagShot SHOT=[SHOT2] SPOSX=10
$FlagShot SHOT=[SHOT2] SPOSX=20
$FlagShot SHOT=[SHOT1] SPOSX=30
$FlagShot SHOT=[SHOT2] SPOSX=40
$FlagShot SHOT=[SHOT1] SPOSX=50
$FlagShot SHOT=[SHOT1] SPOSX=60
$FlagShot SHOT=[SHOT1] SPOSX=70
$FlagShot SHOT=[SHOT1] SPOSX=80
$FlagShot SHOT=[SHOT1] SPOSX=90
$FlagShot SHOT=[SHOT1] SPOSX=100
$FlagShot SHOT=[SHOT2] SPOSX=110
$FlagShot SHOT=[SHOT1] SPOSX=120
$FlagShot SHOT=[SHOT2] SPOSX=130
$FlagShot SHOT=[SHOT2] SPOSX=140
$FlagShot SHOT=[SHOT2] SPOSX=150
</var>
<var name="FlagShot123121321">
$FlagShot SHOT=[SHOT2] SPOSX=0
$FlagShot SHOT=[SHOT1] SPOSX=10
$FlagShot SHOT=[SHOT1] SPOSX=20
$FlagShot SHOT=[SHOT2] SPOSX=30
$FlagShot SHOT=[SHOT2] SPOSX=40
$FlagShot SHOT=[SHOT2] SPOSX=50
$FlagShot SHOT=[SHOT1] SPOSX=60
$FlagShot SHOT=[SHOT2] SPOSX=70
$FlagShot SHOT=[SHOT2] SPOSX=80
$FlagShot SHOT=[SHOT1] SPOSX=90
$FlagShot SHOT=[SHOT2] SPOSX=100
$FlagShot SHOT=[SHOT2] SPOSX=110
$FlagShot SHOT=[SHOT2] SPOSX=120
$FlagShot SHOT=[SHOT1] SPOSX=130
$FlagShot SHOT=[SHOT1] SPOSX=140
$FlagShot SHOT=[SHOT2] SPOSX=150
</var>
<var name="FlagShotPirateShot">
$FlagShot16 SHOT=[SHOT2] SPOSY=-50
$FlagShot2134312 SPOSY=-40
$FlagShot1316131 SPOSY=-30
$FlagShot484 SPOSY=-20
$FlagShot4122214 SPOSY=-10
$FlagShot4122214 SPOSY=-0
$FlagShot484 SPOSY=10
$FlagShot3116113 SPOSY=20
$FlagShot123121321 SPOSY=30
$FlagShot2134312 SPOSY=40
$FlagShot16 SHOT=[SHOT2] SPOSY=50
</var>
<var name="FlagShot16">
$FlagShot SHOT=[SHOT] SPOSX=0
$FlagShot SHOT=[SHOT] SPOSX=10
$FlagShot SHOT=[SHOT] SPOSX=20
$FlagShot SHOT=[SHOT] SPOSX=30
$FlagShot SHOT=[SHOT] SPOSX=40
$FlagShot SHOT=[SHOT] SPOSX=50
$FlagShot SHOT=[SHOT] SPOSX=60
$FlagShot SHOT=[SHOT] SPOSX=70
$FlagShot SHOT=[SHOT] SPOSX=80
$FlagShot SHOT=[SHOT] SPOSX=90
$FlagShot SHOT=[SHOT] SPOSX=100
$FlagShot SHOT=[SHOT] SPOSX=110
$FlagShot SHOT=[SHOT] SPOSX=120
$FlagShot SHOT=[SHOT] SPOSX=130
$FlagShot SHOT=[SHOT] SPOSX=140
$FlagShot SHOT=[SHOT] SPOSX=150
</var>
<var name="FlagShot">
<bullet angle="[ANGLE]" speed="[SPEED]" shot_type="[SHOT]" spawn_offset ="[SPOSX],[SPOSY]">
<change self_scale="0.5" />
<wait time="0.5" />
<loop iterations="5">
<change angle="45" time="0.0001" />
<wait time=".5" />
<change angle="90" time="0.0001" />
<wait time=".5" />
<change angle="135" time="0.0001" />
<wait time=".5" />
<change angle="180" time="0.0001" />
<wait time=".5" />
<change angle="225" time="0.0001" />
<wait time=".5" />
<change angle="270" time="0.0001" />
<wait time=".5" />
<change angle="315" time="0.0001" />
<wait time=".5" />
<change angle="0" time="0.0001" />
<wait time="1" />
<wait time="2" />
</loop>
</bullet>
</var>
<bullet_pattern name="FlagPIRAPattern">
$FlagShotPirateShot SPEED=260 ANGLE=0 SHOT1=WingsWhite SHOT2=WingsTrueBlue
</bullet_pattern>
<system name="FrogRevengeRamSystem"
category="DirectUseSystem"
firing_timing="WhenParentEntityHit"
fire_rate="1"
image_name="Invisible"
display_name="Revenge Rams" description="Spawns a Ram whenever you're hit."
spawns_entity="Ram2"
>
</system>
<entity name="Ram2" ship_category="Familiar"
category="Ship" is_not_ready_to_seed="true"
familiar_type="NormalShipBehavior" behavior="FamiliarRam" familiar_ram_charge_distance="500"
speed="100"
max_health = "50"
display_name="Ram" description="Deploys a ram to attack any nearby enemy."
image_folder="Familiars"
image_name="Ram"
familiar_regenerates_after_current_room="false"
is_familiar_that_dies_when_parent_dies="true"
>
<hitbox radius="18"/>
<system type="RamRam" offset="0,0"/>
</entity>
see above
d,,,,,,,,...,,,,,,,,d
,,,,,,,,,,,,,,,,,,,,,
,,sss,ss,ssss,ss,ss,,
,,s,,,,,,,,,,,,,,,s,,
,,s,ssss,ss,ss,ss,s,,
,,,,,,,,,,+,,,,,s,,,,
,,s,s,ss,sss,ss,s,s,,
,,s,s,s,,,,,,,s,s,s,,
,,,,s,s,ss,ss,,,,,s,,
.,s,,,,,s111s,s,s,s,.
.,s,s,s,,1B1s,s,s,,,.
.,,,s,s,s111,,,,,,s,.
,,s,s,,,s,sss,s,s,s,,
,,s,s,s,,,,,,,s,s,,,,
,,s,,,ss,ss,sss,,,s,,
,,s,s,,,,,,,,,,,s,s,,
,,,,sss,ss,s,ssss,,,,
,,s,,,,,,,,,,,,,,,s,,
,,ss,ss,sss,ssss,ss,,
,,,,,,,,,,,,,,,,,,,,,
d,,,,,,,,...,,,,,,,,d
<entity name="MazeMaster"
ship_category="Miniboss"
display_name="MazeMaster"
behavior="PathfindingAttacker"
category="Ship"
speed="1000"
acceleration="25"
turning_resistance="10"
decceleration="25"
max_health="1000"
image_folder="Enemy_LargeChaos"
image_name="HunterWhite"
wall_collision_reduction="-17"
time_to_visually_rotate_180_degrees=".1">
<system type="MazeDroneBaySystem" offset="0,0" />
<hitbox radius="46" offset="0,0"/>
<room src="Miniboss/PT_Maze" />
</entity>
<entity name="PTMazeSlow" ship_category="Pursuer_1x1"
category="Ship"
display_name="Maze Minion Slow"
behavior="CardinalMover"
speed="400" acceleration="50"
max_health="50"
image_folder="Enemy_Pursuers" image_name="FaceripperBlue"
time_to_visually_rotate_180_degrees="0.7"
>
<hitbox radius="26" />
</entity>
<entity name="PTMazeFast" ship_category="DeadlyPursuer_1x1"
category="Ship"
display_name="Maze Minion Fast"
behavior="PathfindingAttacker"
speed="500" acceleration="50"
max_health="100"
image_folder="Enemy_Pursuers" image_name="FaceripperGreen"
time_to_visually_rotate_180_degrees="0.7"
>
<hitbox radius="26" />
</entity>
<entity name="PTMazeSlowSpawn" ship_category="Pursuer_1x1"
category="Ship"
display_name="Maze Minion Slow"
behavior="CardinalMover"
speed="400" acceleration="50"
max_health="50"
image_folder="Enemy_Pursuers" image_name="ChargerBlack"
time_to_visually_rotate_180_degrees="0.7"
>
<hitbox radius="26" />
</entity>
<entity name="PTMazeFastSpawn" ship_category="DeadlyPursuer_1x1"
category="Ship"
display_name="Maze Minion Fast"
behavior="PathfindingAttacker"
speed="500" acceleration="50"
max_health="100"
image_folder="Enemy_Pursuers" image_name="ChargerWhite"
time_to_visually_rotate_180_degrees="0.7"
>
<hitbox radius="26" />
</entity>
<system name="InvaderSystem1"
category="Weapon"
shot_type="SpineWhite"
damage_type="Ballistic"
attack_power="1"
fire_rate="4"
cue_time = "0"
range_actual="1400"
shots_per_salvo="1"
shot_speed="250"
targeting_logic="Direct"
firing_timing="AllTheTime"
image_name="Invisible"
initial_firing_delay ="8"
>
</system>
<system name="HoldFire1System"
category = "DirectUseSystem"
firing_timing="5"
fire_rate="5"
image_name="Invisible"
>
</system>
<system name="InvaderSystem2"
category="Weapon"
shot_type="SpineGreen"
damage_type="Ballistic"
attack_power="1"
fire_rate="2"
cue_time = "0"
range_actual="1400"
shots_per_salvo="1"
shot_speed="250"
targeting_logic="Direct"
firing_timing="AllTheTime"
image_folder="Simpler"
image_name="Invisible"
initial_firing_delay ="8"
>
</system>
<system name="InvaderSystem3"
category="Weapon"
shot_type="SpineTrueBlue"
damage_type="Ballistic"
attack_power="1"
fire_rate="3"
cue_time = "0"
range_actual="1400"
shots_per_salvo="1"
shot_speed="250"
targeting_logic="Direct"
firing_timing="AllTheTime"
image_folder="Simpler"
image_name="Invisible"
do_parallel_salvo_with_spacing="0"
salvo_angle_difference="5"
initial_firing_delay ="8"
fires_salvos_sequentially="true"
>
</system>
<system name="InvaderSystem4"
category="Weapon"
shot_type="SpineEmblazonedYellow"
damage_type="Ballistic"
attack_power="1"
fire_rate="2"
cue_time = "0"
range_actual="1400"
shots_per_salvo="3"
shot_speed="450"
targeting_logic="Dumbfire"
firing_timing="OnlyInRange"
image_folder="Simpler"
image_name="Invisible"
initial_firing_delay ="0"
fires_salvos_sequentially="false"
do_parallel_salvo_with_spacing = "10"
>
</system>
<system name="InvaderSystem5"
category="Weapon"
shot_type="SpineTrueBlue"
damage_type="Ballistic"
attack_power="1"
fire_rate="2.4"
cue_time = "0"
range_actual="1400"
shots_per_salvo="3"
shot_speed="350"
targeting_logic="Dumbfire"
firing_timing="AllTheTime"
image_folder="Simpler"
image_name="Invisible"
initial_firing_delay ="0"
salvo_angle_difference="5"
>
</system>
<entity name="InvaderMinion1" ship_category="Wander_3x3"
display_name="Invader"
behavior="Zamboni" category="Ship"
speed="300"
max_health="10"
image_folder="Enemy_SmallMobile" image_name="AmberBarrage"
wall_collision_reduction="-15"
time_to_visually_rotate_180_degrees="0.3"
on_death_drops_ability_points="0"
always_faces_player ="true"
>
<system type="InvaderSystem1" offset="0,0" />
<system type="HoldFire1System" offset="0,0" />
<hitbox radius="37" offset="-10,0" />
</entity>
<entity name="InvaderMinion2" ship_category="Wander_3x3"
display_name="Invader"
behavior="Zamboni" category="Ship"
speed="300"
max_health="20"
image_folder="Enemy_SmallMobile" image_name="GreenBomber"
wall_collision_reduction="-15"
time_to_visually_rotate_180_degrees="0.3"
on_death_drops_ability_points="0"
always_faces_player ="true"
>
<system type="InvaderSystem2" offset="0,0" />
<hitbox radius="37" offset="-10,0" />
</entity>
<entity name="InvaderMinion3" ship_category="Wander_3x3"
display_name="Invader"
behavior="Zamboni" category="Ship"
speed="300"
max_health="30"
image_folder="Enemy_SmallMobile" image_name="BlueBomber"
wall_collision_reduction="-15"
time_to_visually_rotate_180_degrees="0.3"
on_death_drops_ability_points="0"
always_faces_player ="true"
>
<system type="InvaderSystem3" offset="0,0" />
<hitbox radius="37" offset="-10,0" />
</entity>
<entity name="InvaderMinion4" ship_category="Wander_3x3"
display_name="Invader"
behavior="Zamboni" category="Ship"
speed="300"
max_health="40"
image_folder="Enemy_SmallMobile" image_name="MiniSwarmBlueGreen"
wall_collision_reduction="-15"
time_to_visually_rotate_180_degrees="0.3"
on_death_drops_ability_points="0"
always_faces_player ="true"
>
<system type="InvaderSystem4" offset="0,0" />
<hitbox radius="37" offset="-10,0" />
</entity>
<entity name="InvaderMinion5" ship_category="Wander_3x3"
display_name="Invader"
behavior="Zamboni" category="Ship"
speed="300"
max_health="50"
image_folder="Enemy_SmallMobile" image_name="MiniSwarmBlueOrange"
wall_collision_reduction="-15"
time_to_visually_rotate_180_degrees="0.3"
on_death_drops_ability_points="0"
always_faces_player ="true"
>
<system type="InvaderSystem5" offset="0,0" />
<hitbox radius="37" offset="-10,0" />
</entity>
<entity name="InvaderBoss" ship_category="Boss" knockback_resistance="1"
display_name="Invader"
behavior="Zamboni" category="Ship"
speed="200" never_changes_angle_after_spawn="true"
max_health="500" wall_collision_reduction="-20"
image_folder="Enemy_Bosses" image_name="CrystalMother"
starting_angle="0"
on_death_shot_clearing_explosion_radius="2000"
do_not_seed_until_x_floors_down="1"
invincible_while_in_same_room_with="InvaderMinion1,InvaderMinion2,InvaderMinion3,InvaderMinion4,InvaderMinion5"
>
<system type="InvaderBossSystem" offset="0,0" />
<hitbox radius="60" offset="0,0" />
<room src="Boss_Large/Pt_BossSpaceInvader4" buddies="InvaderMinion1,InvaderMinion2,InvaderMinion3,InvaderMinion4,InvaderMinion5"/>
<system type="FrogRevengeRamSystem" offset="0,0" />
</entity>
<entity name="PTGhost" ship_category="Pursuer_1x1"
category="Ship"
display_name="Blue Ghost-CardinalMover"
behavior="CardinalMover"
speed="500" acceleration="50"
max_health="25"
image_folder="Enemy_Pursuers" image_name="FaceripperBlue"
time_to_visually_rotate_180_degrees="0.7"
>
<hitbox radius="26" />
</entity>
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,IIIIIIIIIIIIIIIIIIIIII,,,,,,,
,,IIIIIIIIIIIIIIIIIIIIII.,,,,,,
,,II.......................,,,,
,,II.U.U.U.U.U.............,,,,
,,II........................,,,
,,II.U.U.U.U.U.............II,,
,,II..................yss..II,,
,,II.U.U.U.U.U........ysb..II,,
,,II..................yss..II,,
,,II.U.U.U.U.U.............II,,
,,II.......................II,,
,,II.U.U.U.U.U.............II,,
,,II..................yss..II,,
+,IIBU.U.U.U.U........ysb.+II,+
,,II..................yss..II,,
,,II.U.U.U.U.U.............II,,
,,II.......................II,,
,,II.U.U.U.U.U.............II,,
,,II..................yss..II,,
,,II.U.U.U.U.U........ysb..II,,
,,II..................yss..II,,
,,II.U.U.U.U.U.............II,,
,,II........................,,,
,,II.U.U.U.U.U.............,,,,
,,II.......................,,,,
,,IIIIIIIIIIIIIIIIIIIIII.,,,,,,
,,IIIIIIIIIIIIIIIIIIIIII,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
<system name="HoldFire1System"
category = "DirectUseSystem"
firing_timing="5"
fire_rate="5"
image_name="Invisible"
>
</system>
About the Healership, have you tried making a weapon that explodes, does friendly fire, and do negative damage?
You could have a system with an on-use effect that increases the hull health of all enemies.That is hilarious. Although, per zharmad's question, negative damage seems to deal no damage, not heal.
Or you could have a system with:
modifiers_applied_to_nearby_entities_can_target_allies="true"
modifiers_applied_to_nearby_entities_can_target_enemies="true"
distance_threshold_modifiers_applied_to_nearby_entities="(whatever range)"
and a modifier with target="NearbyEntities", type="DamagePerSecond", math="Add", and a negative magnitude.
I don't vouch for spelling, syntax, or completeness ;)
Right, but this wouldn't be using the normal field for damage. I think negative DamagePerSecond does work.
<system name="ShieldAddSystem"
category="DirectUseSystem"
shot_type="Invisible"
damage_type="Ballistic"
attack_power="1" fire_rate="1"
range_actual="500" cue_time="0"
shots_per_salvo="1"
targeting_logic="Dumbfire" firing_timing="AllTheTime"
image_name="Invisible"
initial_firing_delay="0"
distance_threshold_modifiers_applied_to_nearby_entities="500"
modifiers_applied_to_nearby_entities_can_target_allies="true"
modifiers_applied_to_nearby_entities_can_target_enemies="true"
>
<modifier target="MyParentEntity" type="DamagePerSecond" math="add" magnitude="1" do_not_stack="true" duration="-1"/>
</system>
Keith, is there any way for EnemyFamiliar Entities to influence their parent? For example, the familiar possesses an entity system that targets and damages/slows the parent when the familiar is hit.I don't think there's anything like that implemented, no. You could have an enemy that, on death (or on hit, via a system that only triggers on-hit), triggers effects that affect all enemies. But not specifically the familiar's master.
<var name="ZHAGraspingClawShortShot">
<bullet angle="[REACH_ANGLE]" speed="[REACH_SPEED]" never_collides_with_terrain="true" shot_type="WidowShotWhite" damage_mult="0" do_not_do_rest_of_logic_on_early_death="true">
<change angle="[REACH_TURN]" relative="true" time="[TIME1]" />
<change speed="0" time="0" />
<wait time="[TIME2]" />
<spawn>
<bullet_pattern>
<bullet angle="0" speed="[GRAB_SPEED]" shot_type="WidowShotRed" damage_mult="1">
<change angle="[GRAB_TURN]" relative="true" time="[TIME3]" />
<die />
</bullet>
</bullet_pattern>
</spawn>
<die />
</bullet>
</var>
<var name="RotaryShot2">
<bullet angle="[ANGLE]" speed="0" shot_type="[SHOT]" rotates_around_firing_entity="false" moves_with_firing_entity="true" spawns_offset_from_firing_entity="[CENTERX],[CENTERY]" never_collides_with_terrain="true" dumbfire="true">
<spawn>
<bullet_pattern>
$RotaryShot ROTSPEED=1 ANGLE=30 SHOT=QuadRed SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=100 CENTERY=-100
$RotaryShot ROTSPEED=1 ANGLE=60 SHOT=QuadGreen SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=100 CENTERY=-100
$RotaryShot ROTSPEED=1 ANGLE=90 SHOT=QuadGreen SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=100 CENTERY=-100
$RotaryShot ROTSPEED=1 ANGLE=120 SHOT=QuadGreen SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=100 CENTERY=-100
$RotaryShot ROTSPEED=1 ANGLE=150 SHOT=QuadGreen SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=100 CENTERY=-100
$RotaryShot ROTSPEED=1 ANGLE=180 SHOT=QuadGreen SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=100 CENTERY=-100
$RotaryShot ROTSPEED=1 ANGLE=210 SHOT=QuadGreen SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=100 CENTERY=-100
$RotaryShot ROTSPEED=1 ANGLE=240 SHOT=QuadGreen SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=100 CENTERY=-100
$RotaryShot ROTSPEED=1 ANGLE=270 SHOT=QuadGreen SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=100 CENTERY=-100
$RotaryShot ROTSPEED=1 ANGLE=300 SHOT=QuadGreen SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=100 CENTERY=-100
$RotaryShot ROTSPEED=1 ANGLE=330 SHOT=QuadGreen SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=100 CENTERY=-100
$RotaryShot ROTSPEED=1 ANGLE=360 SHOT=QuadBlue SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=100 CENTERY=-100
</bullet_pattern>
</spawn>
<loop iterations="-1">
<change offset_from_parent="[CENTERX],[CENTERY]" time="0"/>
</loop>
</bullet>
</var>
<var name="RotaryShot">
<bullet angle="[ANGLE]" speed="0" shot_type="[SHOT]" rotates_around_firing_entity="false" moves_with_firing_entity="true" spawns_offset_from_firing_entity="[SPOSX],[SPOSY]" never_collides_with_terrain="true" dumbfire="true" offset_is_relative_to_parent_bullet_instead_of_firing_entity="true">
<loop iterations="-1">
<change offset_from_parent="[SPOSX],[SPOSY]" time="0"/>
<change relative="true" angle="180" time="1"/>
</loop>
<die />
</bullet>
</var>
<bullet_pattern name="RotaryPattern">
$RotaryShot2 ROTSPEED=1 ANGLE=360 SHOT=QuadBlue SPOSX=-100 SPOSY=100 SCALE=2 CENTERX=-100 CENTERY=-100
</bullet_pattern>
<system name="RotarySystem"
category="Weapon"
shot_type="QuadGreen"
damage_type="Ballistic"
attack_power="1"
fire_rate="50"
cue_time = "0.5"
range_actual="800"
shots_per_salvo="1"
shot_speed="0"
targeting_logic="Dumbfire"
firing_timing="AllTheTime"
image_name="QuadGreen"
special_bullet_patterns="RotaryPattern"
>
</system>
<entity name="Rotary" ship_category="LocalGuard_1x1"
category="Ship"
display_name="Buzzsaw"
behavior="LineOfSightAttacker"
speed="200" acceleration="50"
max_health="25"
image_folder="Enemy_Pursuers" image_name="Abmoog1Green"
time_to_visually_rotate_180_degrees="0.7"
>
<hitbox radius="26" />
<system type="RotarySystem" offset="0,0" />
</entity>
<system name="RotarySystem"
category="Weapon"
shot_type="QuadGreen"
damage_type="Ballistic"
attack_power="1"
fire_rate="2"
cue_time = "0.5"
range_actual="10"
shots_per_salvo="1"
shot_speed="0"
targeting_logic="Direct"
firing_timing="AllTheTime"
image_name="QuadGreen"
special_bullet_patterns="RotaryPattern"
shots_never_collide_with_terrain="true"
shots_use_performance_sensitive_logic="true"
>
<modifier target="MyShots" type="IgnoresCollisionWithNonWallTerrain"/>
<modifier target="MyShots" type="IgnoresCollisionWithWallTerrain"/>
</system>
<bullet_pattern name="RotaryPattern">
$RotaryShot ROTSPEED=.25 SHOT=QuadBlue SPOSX=-50 SPOSY=50 SCALE=2 CENTERX=115 CENTERY=-100 ROTDIR=-90
$RotaryShot ROTSPEED=.25 SHOT=QuadBlue SPOSX=50 SPOSY=50 SCALE=2 CENTERX=-115 CENTERY=-100 ROTDIR=90
</bullet_pattern>
<var name="RotaryShot">
<bullet angle="0" speed="0" shot_type="[SHOT]" rotates_around_firing_entity="true" moves_with_firing_entity="true" spawns_offset_from_firing_entity="[CENTERX],[CENTERY]" never_collides_with_terrain="true" dumbfire="false" is_invisible_and_does_not_collide_with_ships="true">
<spawn>
<bullet_pattern>
$SawToothShot ANGLE=30
$SawToothShot ANGLE=60
$SawToothShot ANGLE=90
$SawToothShot ANGLE=120
$SawToothShot ANGLE=150
$SawToothShot ANGLE=180
$SawToothShot ANGLE=210
$SawToothShot ANGLE=240
$SawToothShot ANGLE=270
$SawToothShot ANGLE=300
$SawToothShot ANGLE=330
$SawToothShot ANGLE=360
</bullet_pattern>
</spawn>
<loop iterations="-1">
<change offset_from_parent="[CENTERX],[CENTERY]" time="0"/>
</loop>
</bullet>
</var>
<var name="SawToothShot">
<bullet angle="[ANGLE]" speed="0" shot_type="[SHOT]" shots_use_performance_sensitive_logic="true" rotates_around_firing_entity="false" moves_with_firing_entity="true" spawns_offset_from_firing_entity="[SPOSX],[SPOSY]" never_collides_with_terrain="true" dumbfire="true" offset_is_relative_to_parent_bullet_instead_of_firing_entity="true" ShotIsNotStoppedByHitting="true">
<loop iterations="16">
<change offset_from_parent="[SPOSX],[SPOSY]" time="0"/>
<change relative="true" angle="[ROTDIR]" time="[ROTSPEED]"/>
</loop>
<die />
</bullet>
</var>
Q: Anyone have a good method to combine all of the xml docs into a single searchable offline document that is easily updated?
Q: Are death animations changeable?
Q: Should a modding forum be established?
Q: Method for system to have a chance to fire?
That works for shots, but not for systems that act on events. In this case I want to have a chance to summon another guy on death.give the entity a system with:
You can give systems a random chance of activating?You can give the individual effect nodes a random chance of doing something. Which isn't quite the same thing. But still useful.
....huh.
I already emailed Chris about a modding subforum. :D
I already emailed Chris about a modding subforum. :D
I went ahead and made it since the game does have an emphasis on the whole modability thing. :)
<system name="MagneticPersonalitySystem"
category="DirectUseSystem"
firing_timing="Never"
image_name="Invisible"
display_name="Magnetic Personality" description="Nothing will be barred from you."
>
<effect timing="OnRoomSwitch" targeting="AllAutoPickups" type="StartMovementDrivingPattern" related_pattern="MagneticPattern"/>
<effect timing="OnRoomSwitch" targeting="AllAutoPickups" type="CopyModifiersToWorldToAffect">
<modifier type="IgnoresCollisionWithNonWallTerrain"/>
<modifier type="IgnoresCollisionWithWallTerrain"/>
</effect>
</system>
<bullet_pattern name="MagneticPattern">
<bullet speed="100" angle="0" shot_type="Invisible" never_collides_with_terrain="true">
<loop iterations="-1">
<wait time="0.01" />
<change relative="ToPlayer" angle="0" speed="100" time="0.0001"/>
</loop>
</bullet>
</bullet_pattern>
<system name="BossTrainSystem"
category="DirectUseSystem"
fire_rate="1"
firing_timing="AllTheTime"
image_name="MolarBlue"
special_bullet_patterns="BossTrainPattern"
>
<effect timing="OnUse" targetting="Self" type="StartMovementDrivingPattern" related_pattern="BossTrainPattern"/>
</system>
<bullet_pattern name="BossTrainPattern">
<bullet speed="200" angle="180" shot_type="HexishellEmblazonedYellow" relative="true">
<loop iterations="-1">
<change angle="90" speed="100" time="0.5"/>
<wait time="1" />
</loop>
</bullet>
</bullet_pattern>
Controlling Enemy MovementI'd suggest bullet.uses_direct_location_control and change.location as starting points there.
This is one of the things that we've all wanted to use (precise boss movement controls), but no one has gotten to work quite right yet.
...see entity.initial_movement_driving_bullet_pattern...
...see EffectType.StartMovementDrivingPattern ...
https://www.arcengames.com/mediawiki/index.php?title=Starward_Rogue:XML_-_GameEntity_Definitions contains initial_movement_driving_bullet_pattern...see entity.initial_movement_driving_bullet_pattern...
...see EffectType.StartMovementDrivingPattern ...
Is there a secret document or something that contains all of these tags and attributes that I'm unaware of?
You know that wiki is really hard to use :-\If you know a better way, let us know. My role is just to add the names and descriptions of the flags/etc I implement for use in the content xml.
You know that wiki is really hard to use :-\If you know a better way, let us know. My role is just to add the names and descriptions of the flags/etc I implement for use in the content xml.
Carry on, Awkward Humor And Complaint Unit 763 ;)*Renders proper salute*
My point is: I don't know how to better organize the info. Even if I did, I don't have the time because the list of bugs assigned to me is always full. Even if I had the time, Chris organized the wiki, not me, and I dunno if he wants me messing with that ;)
But if y'all have the ideas, and someone has the time to implement them, that would be a start.
I would not be surprised if adding with_cheese to your entity literally causes it to spawn with a random image drawn from https://en.wikipedia.org/wiki/List_of_cheeses
P.S. Diazo, I, Histidine, and a few others organised the AIWar Wiki back in the Spire expansion days. I'm not sure whether anyone in maintaining them now.
<entity name="TestMinion" ship_category="EnemyFamiliar" is_not_ready_to_seed="true"
display_name="Test"
behavior="Attacker" category="Ship"
speed="300"
max_health="20"
image_folder="Enemy_BossBuddies" image_name="InvaderMinion2OrangeTeal"
wall_collision_reduction="-15"
time_to_visually_rotate_180_degrees="0.3"
always_faces_player ="true"
initial_movement_driving_bullet_pattern="ExampleBoxMovePattern"
>
<hitbox radius="37" offset="-10,0" />
</entity>
<bullet_pattern name="ExampleBoxMovePattern">
<bullet speed="200" angle="180" shot_type="HexishellEmblazonedYellow" relative="true" uses_direct_location_control="true" location="150,300">
<die/>
<loop iterations="-1">
<change uses_direct_location_control="true" location="300,300" time="0.5"/>
<wait time="1" />
<change uses_direct_location_control="true" location="-300,300" time="0.5"/>
<wait time="1" />
<change uses_direct_location_control="true" location="-300,-300" time="0.5"/>
<wait time="1" />
<change uses_direct_location_control="true" location="300,-300" time="0.5"/>
<wait time="1" />
</loop>
</bullet>
</bullet_pattern>
<system name="InteruptMovementSystem"
category="DirectUseSystem"
fire_rate="5"
ammo="10"
cue_time="0"
image_name="MolarBlue"
firing_timing="AllTheTime"
>
<effect timing="OnUse" targeting="Self" type="StartMovementDrivingPattern" related_pattern="ExampleBoxMovePattern"/>
</system>
follows_previously_spawned_entity (bool)
*makes this entity follow the last entity spawned by this operation
*for now [b]only[/b] works with a pattern triggered by an entity's [u]spawning_patterns[/u] attribute
*also, only takes effect on an entity after the spawning bullet behavior has concluded (without a die tag); before that point the bullet pattern itself decides where it moves
spawning_patterns (List<bullet_pattern>)
when this entity is spawned by room-generation, instead of just spawning one at the center of the corresponding tile, it picks one of the bullet patterns in this list, then spawns one entity per bullet node that's a direct child of the pattern (so child nodes that do their own spawns don't count)
<entity name="AbmoogBasic" ship_category="LocalGuard_1x1"
category="Ship"
display_name="Basic Abmoog"
behavior="CardinalMover"
speed="1" acceleration="50"
max_health="25"
image_folder="Enemy_Pursuers" image_name="Abmoog1Green"
time_to_visually_rotate_180_degrees="2"
>
<hitbox radius="26" />
<system type="AbmoogBasicSystem" offset="0,0" />
</entity>
<system name="AbmoogBasicSystem"
category="Weapon"
shot_type="ClipperWhite"
damage_type="Ballistic"
attack_power="1"
fire_rate="5"
cue_time = "0"
range_actual="600"
shots_per_salvo="1"
shot_speed="0"
targeting_logic="Direct"
image_name="Invisible"
firing_timing="OnlyinRange"
initial_firing_delay ="0"
special_bullet_patterns="SnakePattern"
>
</system>
<bullet_pattern name="SnakePattern">
<bullet angle="0" speed="0">
<spawn>
<bullet_pattern>
$SnakeShot SHOT_TYPE=ClipperRed TIME=0.5 SPEED=300
</bullet_pattern>
</spawn>
<loop iterations="2">
<wait time="0.1"/>
<spawn>
<bullet_pattern>
$SnakeShot SHOT_TYPE=TorchWhite TIME=0.5 SPEED=300
</bullet_pattern>
</spawn>
<wait time="0.1"/>
<spawn>
<bullet_pattern>
$SnakeShot SHOT_TYPE=TorchGolden TIME=0.5 SPEED=300
</bullet_pattern>
</spawn>
<wait time="0.1"/>
</loop>
</bullet>
</bullet_pattern>
<var name="SnakeShot">
<bullet angle="0" speed="[SPEED]" shot_type="[SHOT_TYPE]" relative="true">
<loop iterations="-1">
<change angle="90" speed="0" relative="true" time="[TIME]"/>
<change angle="-90" speed="0" relative="true" time="[TIME]"/>
<change angle="-90" speed="0" relative="true" time="[TIME]"/>
<change angle="90" speed="0" relative="true" time="[TIME]"/>
</loop>
</bullet>
</var>
<var name="SnakeLoopShot">
<bullet angle="0" speed="100" shot_type="SpikeGreen" relative="false" interval_mult="1">
<loop iterations="-1">
<change self_scale="1"/>
<change angle="45" speed="100" relative="false" time=".5"/>
<change angle="-45" speed="100" relative="false" time=".5"/>
</loop>
</bullet>
</var>
<var name="SnakeNoBuffLoopShot">
<bullet angle="0" speed="100" shot_type="SpikeRed" relative="false" interval_mult="1">
<loop iterations="-1">
<change angle="45" speed="100" relative="false" time=".5"/>
<change angle="-45" speed="100" relative="false" time=".5"/>
</loop>
</bullet>
</var>
<var name="SnakeNoLoopShot">
<bullet angle="0" speed="100" shot_type="SpikeYellow" relative="false" interval_mult="1">
<change angle="45" speed="100" relative="false" time=".5"/>
<change angle="-45" speed="100" relative="false" time=".5"/>
<change angle="45" speed="100" relative="false" time=".5"/>
<change angle="-45" speed="100" relative="false" time=".5"/>
<change angle="45" speed="100" relative="false" time=".5"/>
<change angle="-45" speed="100" relative="false" time=".5"/>
<change angle="45" speed="100" relative="false" time=".5"/>
<change angle="-45" speed="100" relative="false" time=".5"/>
</bullet>
</var>
How can I make a particular shot in a bullet pattern richochet off terrain? I've only seen modifiers in the system entities, which will be ignored by a special bullet pattern.
How can I make a particular shot in a bullet pattern richochet off terrain? I've only seen modifiers in the system entities, which will be ignored by a special bullet pattern.
Modifiers like that affect bullets in patterns actually.
https://www.arcengames.com/mediawiki/index.php?title=Starward_Rogue:XML_-_Modifier_Definitions#Contexts_In_Which_You_Can_Use_A_Modifier_Tag
bullet nodes can take modifier sub-nodes, with target="Self", and they should impact just that bullet. RicochetsOffTerrain is probably the modifier type you're looking for.
This is why I ask for help on patterns, you guys are giving me a headache ;)
You forgot:
firing_timing="AllTheTime"
Happy meow?You put it after the >! All the exemel smoke will get out!
Happy meow?You put it after the >! All the exemel smoke will get out!
Speaking of which, angle changes: annoying. Cant get it to turn in the CORRECT direction.
Just.... lots of weird crap today too. Sent Chris an email about it just now.
I swear this game is aggravating on purpose sometimes. It's a conspiracy somehow.
Happy meow?You put it after the >! All the exemel smoke will get out!
Now it has been refined to be controllable by the user. Gotta love iterative processes.
For the record, Keith sounded just like my ArcenDebugLog reads.
Speaking of which, angle changes: annoying. Cant get it to turn in the CORRECT direction.
Just.... lots of weird crap today too. Sent Chris an email about it just now.
I swear this game is aggravating on purpose sometimes. It's a conspiracy somehow.
I swear that relative works in different ways, especially when you are mixing in angle , rotate_around_entity, move_with_entity, use_real_locations, set_distance_from_entity, and set_angle_from_entity. I'm also still having a nervous breakdown about this loop issue. I see in the secret path notes there is a secret problem with pants, wherein it skips the first line in a loop, but the problem I've been having is that I see the first line being repeated twice in every loop after the first. And Keith just sits there smiling.... smiling....
On the bright side, the code I wrote above will fix my nonbouncing snake issue. Of course now I have to go back and change everything from time units to angle units per unit of time, and add more time, but this is for bouncing snakes!
For the record, Keith sounded just like my ArcenDebugLog reads.
Error Opening vars file: System.Xml.XmlException: 'wait' is expected file:///D:/Steam/steamapps/common/Starward Rogue/RuntimeData/Configuration/BulletPatternVariables/Ptarth_BulletVarsSubmission.xml Line 32, position 9.
at Mono.Xml2.XmlTextReader.Expect (System.String expected) [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.ReadEndTag () [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.ReadContent () [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.Read () [0x00000] in <filename unknown>:0
at System.Xml.XmlTextReader.Read () [0x00000] in <filename unknown>:0
at Mono.Xml.EntityResolvingXmlReader.Read () [0x00000] in <filename unknown>:0
at Mono.Xml.Schema.XsdValidatingReader.Read () [0x00000] in <filename unknown>:0
at System.Xml.XmlValidatingReader.Read () [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNode (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.Load (System.Xml.XmlReader xmlReader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.Load (System.String filename) [0x00000] in <filename unknown>:0
at BulletPatternDataTable.DoPreInitializationLogic () [0x00000] in <filename unknown>:0 : D:/Steam/steamapps/common/Starward Rogue/RuntimeData/Configuration/BulletPatternVariables/Ptarth_BulletVarsSubmission.xml
at System.Environment.get_StackTrace()
at ArcenDebugging.ArcenDebugLog(System.String Message, DebugLogDestination Destination, Boolean IncludeStackTrace, Verbosity Verbosity)
at ArcenDebugging.ArcenDebugLog(System.String Message, DebugLogDestination Destination, Verbosity Verbosity)
at ArcenDebugging.ArcenDebugLog(System.String Message, Verbosity Verbosity)
at EngineConfig.WriteToErrorFile(System.String ErrorFile, System.String ErrorName, System.String ErrorText, Boolean SuppressArcenDebugLog)
at EngineConfig.WriteToErrorFile(System.String ErrorFile, System.String ErrorName, System.String ErrorText)
at BulletPatternDataTable.DoPreInitializationLogic()
at ArcenDynamicTable`1.Initialize(Boolean IsPostInitReParse)
at Game.GameForm_Load()
at Game.ContinueInitializeGame()
at Game.ContinueMultiStageProcess()
at ArcenMainCameraImplementations.MainUpdateLogic()
at MainCameraLogic.Update()
1/29/2016 7:54:07 AM
Errors in reading GameEntityTypeDataTable
internal name 'PlayerRedBlack' occured more than once
internal name 'AbmoogSnakeHandler' occured more than once
internal name 'AbmoogHitSideStep' occured more than once
internal name 'AbmoogHitPhase' occured more than once
internal name 'AbmoogJanitor' occured more than once
internal name 'AbmoogSideStep' occured more than once
internal name 'AbmoogPhaseOut' occured more than once
internal name 'KamikazeInvaderMinion' occured more than once
internal name 'InvaderMinion' occured more than once
internal name 'InvaderMinion1' occured more than once
internal name 'InvaderMinion2' occured more than once
internal name 'InvaderMinion3' occured more than once
internal name 'InvaderMinion4' occured more than once
internal name 'InvaderMinion5' occured more than once
internal name 'InvaderBoss' occured more than once
internal name 'ReanimatorBoss' occured more than once
internal name 'ReanimatorBossStage2' occured more than once
internal name 'ReanimatorBossStage3' occured more than once
internal name 'ReanimatorBossStage4' occured more than once
internal name 'ZombieMech' occured more than once
internal name 'ZombieMechFamiliar' occured more than once
internal name 'BrokenZombieMech' occured more than once
internal name 'ZombiePartPile' occured more than once
internal name 'ZombieGoodPartPile' occured more than once 1/29/2016 7:54:07 AM
GameInit (1 - 1/29/2016 7:54:07 AM) 1/29/2016 7:54:08 AM
Version: 1.009 1/29/2016 7:54:08 AM
sound file count: 509 1/29/2016 7:54:08 AM
sound loading finished 1/29/2016 7:54:08 AM
GameInit (2 - 1/29/2016 7:54:08 AM) 1/29/2016 7:54:16 AM
GameInit (3 - 1/29/2016 7:54:16 AM)
Also Internal failure in that other bullet pattern, but we aren't going to tell you about it. Instead we are going to use the previous version that sorta worked, and keep using it regardless of the changes you made to the pattern, because you have a typo. After you start crying, then we'll consider giving you a fatal error which will remind you to restart the game and notice the pattern won't load. Or perhaps we'll not do anything and see if you notice that your patternslog file has changed again. And for fun, let's add an extra " and see if you notice.
Take "relative=true" out of those angle changes, and the looping just doesnt happen. Among other possible ways to make it not loop.
I see in the secret path notesWell, it's in the XML docs too. Though I think people try to read those like they're animal entrails.
there is a secret problem with pants, wherein it skips the first line in a loop, but the problem I've been having is that I see the first line being repeated twice in every loop after the first.Bizarre. The pants aren't on the head anymore... but it's wearing two pair.
bouncing snakes!And I'm the tormentor?
For the record, Keith sounded just like my ArcenDebugLog reads.
I wish I had that problem. Here is my debug reads:Error Opening vars file: System.Xml.XmlException: 'wait' is expected file:///D:/Steam/steamapps/common/Starward Rogue/RuntimeData/Configuration/BulletPatternVariables/Ptarth_BulletVarsSubmission.xml Line 32, position 9.
at Mono.Xml2.XmlTextReader.Expect (System.String expected) [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.ReadEndTag () [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.ReadContent () [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.Read () [0x00000] in <filename unknown>:0
at System.Xml.XmlTextReader.Read () [0x00000] in <filename unknown>:0
at Mono.Xml.EntityResolvingXmlReader.Read () [0x00000] in <filename unknown>:0
at Mono.Xml.Schema.XsdValidatingReader.Read () [0x00000] in <filename unknown>:0
at System.Xml.XmlValidatingReader.Read () [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.ReadNode (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.Load (System.Xml.XmlReader xmlReader) [0x00000] in <filename unknown>:0
at System.Xml.XmlDocument.Load (System.String filename) [0x00000] in <filename unknown>:0
at BulletPatternDataTable.DoPreInitializationLogic () [0x00000] in <filename unknown>:0 : D:/Steam/steamapps/common/Starward Rogue/RuntimeData/Configuration/BulletPatternVariables/Ptarth_BulletVarsSubmission.xml
at System.Environment.get_StackTrace()
at ArcenDebugging.ArcenDebugLog(System.String Message, DebugLogDestination Destination, Boolean IncludeStackTrace, Verbosity Verbosity)
at ArcenDebugging.ArcenDebugLog(System.String Message, DebugLogDestination Destination, Verbosity Verbosity)
at ArcenDebugging.ArcenDebugLog(System.String Message, Verbosity Verbosity)
at EngineConfig.WriteToErrorFile(System.String ErrorFile, System.String ErrorName, System.String ErrorText, Boolean SuppressArcenDebugLog)
at EngineConfig.WriteToErrorFile(System.String ErrorFile, System.String ErrorName, System.String ErrorText)
at BulletPatternDataTable.DoPreInitializationLogic()
at ArcenDynamicTable`1.Initialize(Boolean IsPostInitReParse)
at Game.GameForm_Load()
at Game.ContinueInitializeGame()
at Game.ContinueMultiStageProcess()
at ArcenMainCameraImplementations.MainUpdateLogic()
at MainCameraLogic.Update()
1/29/2016 7:54:07 AM
Errors in reading GameEntityTypeDataTable
internal name 'PlayerRedBlack' occured more than once
internal name 'AbmoogSnakeHandler' occured more than once
internal name 'AbmoogHitSideStep' occured more than once
internal name 'AbmoogHitPhase' occured more than once
internal name 'AbmoogJanitor' occured more than once
internal name 'AbmoogSideStep' occured more than once
internal name 'AbmoogPhaseOut' occured more than once
internal name 'KamikazeInvaderMinion' occured more than once
internal name 'InvaderMinion' occured more than once
internal name 'InvaderMinion1' occured more than once
internal name 'InvaderMinion2' occured more than once
internal name 'InvaderMinion3' occured more than once
internal name 'InvaderMinion4' occured more than once
internal name 'InvaderMinion5' occured more than once
internal name 'InvaderBoss' occured more than once
internal name 'ReanimatorBoss' occured more than once
internal name 'ReanimatorBossStage2' occured more than once
internal name 'ReanimatorBossStage3' occured more than once
internal name 'ReanimatorBossStage4' occured more than once
internal name 'ZombieMech' occured more than once
internal name 'ZombieMechFamiliar' occured more than once
internal name 'BrokenZombieMech' occured more than once
internal name 'ZombiePartPile' occured more than once
internal name 'ZombieGoodPartPile' occured more than once 1/29/2016 7:54:07 AM
GameInit (1 - 1/29/2016 7:54:07 AM) 1/29/2016 7:54:08 AM
Version: 1.009 1/29/2016 7:54:08 AM
sound file count: 509 1/29/2016 7:54:08 AM
sound loading finished 1/29/2016 7:54:08 AM
GameInit (2 - 1/29/2016 7:54:08 AM) 1/29/2016 7:54:16 AM
GameInit (3 - 1/29/2016 7:54:16 AM)
Also Internal failure in that other bullet pattern, but we aren't going to tell you about it. Instead we are going to use the previous version that sorta worked, and keep using it regardless of the changes you made to the pattern, because you have a typo. After you start crying, then we'll consider giving you a fatal error which will remind you to restart the game and notice the pattern won't load. Or perhaps we'll not do anything and see if you notice that your patternslog file has changed again. And for fun, let's add an extra " and see if you notice.
How.... how are you supposed to make sense of that?The only way to win is not to play.
I see in the secret path notesWell, it's in the XML docs too. Though I think people try to read those like they're animal entrails.
there is a secret problem with pants, wherein it skips the first line in a loop, but the problem I've been having is that I see the first line being repeated twice in every loop after the first.Bizarre. The pants aren't on the head anymore... but it's wearing two pair.
wear_one_and_exactly_one_pair_of_pants="true"
If you could give me a reproducible case for that one I could take a look.
How.... how are you supposed to make sense of that?The only way to win is not to play.
gibbering maddness ensues...My apologies, I don't actually crawl mantis (or most of the forums) myself, Chris just puts stuff on my list. Will take a look.
Have some snakes.Why does it always have to be snakes?
Have some snakes.Why does it always have to be snakes?
Have some snakes.Why does it always have to be snakes?
Could be worse.
Could be bigger Blaze Turrets.
Just buff Flak Turrets back to where they were. 100% sure all Blaze Turret complaints stop.Now we know how all those AI ships coming out of a wormhole feel...
Could be worse.
Could be bigger Blaze Turrets.
We already have those.....
<bullet_pattern name="SnakeShot2">
<bullet angle="0" speed="200" shot_type="TorchRed" relative="true" shot_is_not_stopped_by_hitting="true">
<loop iterations="15" take_pants_off_head="true">
<change self_scale="1"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<change angle="5" relative="true" speed="0" time="0.10"/>
<wait time="0.15"/>
</loop>
</bullet>
</bullet_pattern>
gibbering maddness ensues...Ok, I think those are dealt with.
https://www.arcengames.com/mantisbt/view.php?id=18584
https://www.arcengames.com/mantisbt/view.php?id=18585
https://www.arcengames.com/forums/index.php/topic,18335.msg198033.html#msg198033
Also, this tag doesn't work:
requires_firing_system_range_to_player_more_than_or_equal_to="[TRIGGER_DMIN]"
while this tag does:
requires_firing_system_range_to_player_less_than_or_equal_to="[TRIGGER_DMAX]"
requires_firing_system_range_to_player_greater_than_or_equal_to
requires_firing_system_range_to_player_greater_than_or_equal_to
I swear, every time I looked at the wiki in the last 24 hours it said more_than instead of greater_than, up until you mentioned it.
I think he wrote a script to change parts of the wiki, at random, every few hours.Don't be ridiculous.
Well, it would help if the interpreter is also fussy on, e.g. not reading multi-line comments. I'm losing the motivation to stay up at 1am bug fixing what's otherwise perfectly fine code, except that your interpreter ignores the entire file.
You ain't getting nothing until you make me a proper debug tool. ;)
TorchWhite Loops=1 ANGLE=-179 TIME=1.8
TorchRed Loops=170 ANGLE=-1 TIME=0.01
TorchEmblazonedYellow Loops=90 ANGLE=-2 TIME=0.02
TorchYellow Loops=60 ANGLE=-3 TIME=0.03
TorchBlue Loops=45 ANGLE=-4 TIME=0.04
TorchGreen Loops=36 ANGLE=-5 TIME=0.05
TorchPurple Loops=30 ANGLE=-6 TIME=0.06
TorchPink Loops=25.7 ANGLE=-7 TIME=0.07
Notes: <loops>
So I went with bouncing, non-curving boomerangs, given that any significant curving is liable to make it collide with something during the frame it is changing angles.
= = =
.. Is there anyway to make a bullet point in an absolute direction regardless of the orientation of the parent entity AND the player? I want to synch up a particular system when it fires, in terms of the angles from one firing trigger to the next. The blademorphs image is attached (they convert between offensive and defensive depending on distance to the player, updated every ~0.6 seconds or so.) - there's a desynch each time the system fires, but if I leave a bullet pattern on for 30 seconds, it won't die when the parent does. So...
A pinball machine boss.Genius.
A pinball machine boss.Genius.
Looking forward to seeing those bosses. Assuming the XML doesn't unravel your mind first.
A pinball machine boss.Genius.
. I haven't quite figured out how to have an entity dodge 90 degrees to one side on trigger, but with a bullet-pattern moving the entity, it wThe cardinal movement option does something awfully similar. Making a train like boss that moves like a game of Snake should be relatively easy, and quite a change.
. I haven't quite figured out how to have an entity dodge 90 degrees to one side on trigger, but with a bullet-pattern moving the entity, it wThe cardinal movement option does something awfully similar. Making a train like boss that moves like a game of Snake should be relatively easy, and quite a change.
for now I just want to make a (mid?) boss using (o)Rin's zombie mechanic from touhou 11.
i.e. spawns familiars that shoot and run at you, on death they become untargetable and stop moving, but then re-spawn in the same spot a few seconds later.
You could design the boss room around the movement behavior.
You want a boss to act like a train? Give him a track to run that fits his movement pattern.
That's what I was implying. Cardinal makes 90 degree turns when it runs into something. You can design a room to work with the and get the desired effect.
A Train Boss or Pacman could be good fun and a change from the usual boss in one place mode. The current limitation I can think of for the Pac man is some form of a location-based trigger, or on-collision-change-angle-by-90-degrees thing. I haven't quite figured out how to have an entity dodge 90 degrees to one side on trigger, but with a bullet-pattern moving the entity, it would be possible to do a simplified Pacman move system.
If only there's an easy way to make a Free-Space style sweeping beam...?
That's what I was implying. Cardinal makes 90 degree turns when it runs into something. You can design a room to work with the and get the desired effect.
re:Zharmad
After about an hour of working on your Blademorph code I have successfully made them stop firing completely and occasionally force Stardward Rogue into locking up. I'm going to try again later.
Getting there with the reanimating zombie familiars, the problem is making them go away after the boss dies.
Am I going to have to implement them as a very strange type of bullet, would even that clear them?
Essentially, I designed them as 2 entities, which both become the other on death.
(one chases and shoots you, the other is static, immortal, and just sits there and self attritions to trigger the re-spawn.)
Cinth needed to replace one for his mod mech, although Chris was thinking to expand the selection box to 9.
The easiest way to make a slot would be to just delete one mech from CMP_PlayerHulls, (Configuration/GameEntity).FYI, if you remove an entry or change its "name" attribute (which is essentially removing it and adding a similar one with a different name) you break all files that contain that entity/system/whatever. To load them properly you have to put whatever it is back.
The easiest way to make a slot would be to just delete one mech from CMP_PlayerHulls, (Configuration/GameEntity).FYI, if you remove an entry or change its "name" attribute (which is essentially removing it and adding a similar one with a different name) you break all files that contain that entity/system/whatever. To load them properly you have to put whatever it is back.
This is very true. My message log blows up whenever I want to run any mech that normally seeds in the second row.You can avoid that by putting your mech in the stock file at the top, before white gloss. No need to remove white gloss or any of the others.
This is very true. My message log blows up whenever I want to run any mech that normally seeds in the second row.You can avoid that by putting your mech in the stock file at the top, before white gloss. No need to remove white gloss or any of the others.
Anyway, there are a number of solutions, just saying that deleting or renaming existing entries is not generally a good one :)
...ninja stealth himself whenever he enters a room....
<system name="MapSystem"
category="Weapon"
shot_type="Invisible"
damage_type="Energy"
attack_power="1"
fire_rate="2000"
cue_time = "0.0"
range_actual="10"
shots_per_salvo="1"
shot_speed="0"
targeting_logic="Dumbfire"
firing_timing="AllTheTime"
image_name="Invisible"
special_bullet_patterns="MapPattern"
does_no_actual_damage="true"
shots_never_collide_with_terrain="true"
shot_is_not_stopped_by_hitting="true"
shots_leave_no_shadows_or_reflections="true"
>
<modifier target="MyShots" type="IgnoresCollisionWithNonWallTerrain"/>
<modifier target="MyShots" type="IgnoresCollisionWithWallTerrain"/>
</system>
<bullet_pattern name="MapPattern">
$MapPatternShot X=-1000 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=0 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=50 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=100 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=150 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=200 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=250 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=300 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=350 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=400 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=450 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=500 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=550 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=600 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=650 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=700 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=750 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=800 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=850 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=900 SHOT=CrossBlue
$MapPatternShot X=-1000 Y=950 SHOT=CrossGreen
$MapPatternShot X=-1000 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-950 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-950 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-950 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-950 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-950 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-950 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-950 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-950 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-950 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-950 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-950 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-950 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-950 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-950 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-950 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-950 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-950 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-950 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-950 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-950 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-950 Y=0 SHOT=CrossBlue
$MapPatternShot X=-950 Y=50 SHOT=CrossGreen
$MapPatternShot X=-950 Y=100 SHOT=CrossBlue
$MapPatternShot X=-950 Y=150 SHOT=CrossGreen
$MapPatternShot X=-950 Y=200 SHOT=CrossBlue
$MapPatternShot X=-950 Y=250 SHOT=CrossGreen
$MapPatternShot X=-950 Y=300 SHOT=CrossBlue
$MapPatternShot X=-950 Y=350 SHOT=CrossGreen
$MapPatternShot X=-950 Y=400 SHOT=CrossBlue
$MapPatternShot X=-950 Y=450 SHOT=CrossGreen
$MapPatternShot X=-950 Y=500 SHOT=CrossBlue
$MapPatternShot X=-950 Y=550 SHOT=CrossGreen
$MapPatternShot X=-950 Y=600 SHOT=CrossBlue
$MapPatternShot X=-950 Y=650 SHOT=CrossGreen
$MapPatternShot X=-950 Y=700 SHOT=CrossBlue
$MapPatternShot X=-950 Y=750 SHOT=CrossGreen
$MapPatternShot X=-950 Y=800 SHOT=CrossBlue
$MapPatternShot X=-950 Y=850 SHOT=CrossGreen
$MapPatternShot X=-950 Y=900 SHOT=CrossBlue
$MapPatternShot X=-950 Y=950 SHOT=CrossGreen
$MapPatternShot X=-950 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-900 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-900 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-900 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-900 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-900 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-900 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-900 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-900 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-900 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-900 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-900 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-900 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-900 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-900 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-900 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-900 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-900 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-900 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-900 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-900 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-900 Y=0 SHOT=CrossBlue
$MapPatternShot X=-900 Y=50 SHOT=CrossGreen
$MapPatternShot X=-900 Y=100 SHOT=CrossBlue
$MapPatternShot X=-900 Y=150 SHOT=CrossGreen
$MapPatternShot X=-900 Y=200 SHOT=CrossBlue
$MapPatternShot X=-900 Y=250 SHOT=CrossGreen
$MapPatternShot X=-900 Y=300 SHOT=CrossBlue
$MapPatternShot X=-900 Y=350 SHOT=CrossGreen
$MapPatternShot X=-900 Y=400 SHOT=CrossBlue
$MapPatternShot X=-900 Y=450 SHOT=CrossGreen
$MapPatternShot X=-900 Y=500 SHOT=CrossBlue
$MapPatternShot X=-900 Y=550 SHOT=CrossGreen
$MapPatternShot X=-900 Y=600 SHOT=CrossBlue
$MapPatternShot X=-900 Y=650 SHOT=CrossGreen
$MapPatternShot X=-900 Y=700 SHOT=CrossBlue
$MapPatternShot X=-900 Y=750 SHOT=CrossGreen
$MapPatternShot X=-900 Y=800 SHOT=CrossBlue
$MapPatternShot X=-900 Y=850 SHOT=CrossGreen
$MapPatternShot X=-900 Y=900 SHOT=CrossBlue
$MapPatternShot X=-900 Y=950 SHOT=CrossGreen
$MapPatternShot X=-900 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-850 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-850 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-850 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-850 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-850 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-850 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-850 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-850 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-850 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-850 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-850 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-850 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-850 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-850 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-850 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-850 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-850 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-850 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-850 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-850 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-850 Y=0 SHOT=CrossBlue
$MapPatternShot X=-850 Y=50 SHOT=CrossGreen
$MapPatternShot X=-850 Y=100 SHOT=CrossBlue
$MapPatternShot X=-850 Y=150 SHOT=CrossGreen
$MapPatternShot X=-850 Y=200 SHOT=CrossBlue
$MapPatternShot X=-850 Y=250 SHOT=CrossGreen
$MapPatternShot X=-850 Y=300 SHOT=CrossBlue
$MapPatternShot X=-850 Y=350 SHOT=CrossGreen
$MapPatternShot X=-850 Y=400 SHOT=CrossBlue
$MapPatternShot X=-850 Y=450 SHOT=CrossGreen
$MapPatternShot X=-850 Y=500 SHOT=CrossBlue
$MapPatternShot X=-850 Y=550 SHOT=CrossGreen
$MapPatternShot X=-850 Y=600 SHOT=CrossBlue
$MapPatternShot X=-850 Y=650 SHOT=CrossGreen
$MapPatternShot X=-850 Y=700 SHOT=CrossBlue
$MapPatternShot X=-850 Y=750 SHOT=CrossGreen
$MapPatternShot X=-850 Y=800 SHOT=CrossBlue
$MapPatternShot X=-850 Y=850 SHOT=CrossGreen
$MapPatternShot X=-850 Y=900 SHOT=CrossBlue
$MapPatternShot X=-850 Y=950 SHOT=CrossGreen
$MapPatternShot X=-850 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-800 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-800 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-800 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-800 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-800 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-800 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-800 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-800 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-800 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-800 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-800 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-800 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-800 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-800 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-800 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-800 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-800 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-800 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-800 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-800 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-800 Y=0 SHOT=CrossBlue
$MapPatternShot X=-800 Y=50 SHOT=CrossGreen
$MapPatternShot X=-800 Y=100 SHOT=CrossBlue
$MapPatternShot X=-800 Y=150 SHOT=CrossGreen
$MapPatternShot X=-800 Y=200 SHOT=CrossBlue
$MapPatternShot X=-800 Y=250 SHOT=CrossGreen
$MapPatternShot X=-800 Y=300 SHOT=CrossBlue
$MapPatternShot X=-800 Y=350 SHOT=CrossGreen
$MapPatternShot X=-800 Y=400 SHOT=CrossBlue
$MapPatternShot X=-800 Y=450 SHOT=CrossGreen
$MapPatternShot X=-800 Y=500 SHOT=CrossBlue
$MapPatternShot X=-800 Y=550 SHOT=CrossGreen
$MapPatternShot X=-800 Y=600 SHOT=CrossBlue
$MapPatternShot X=-800 Y=650 SHOT=CrossGreen
$MapPatternShot X=-800 Y=700 SHOT=CrossBlue
$MapPatternShot X=-800 Y=750 SHOT=CrossGreen
$MapPatternShot X=-800 Y=800 SHOT=CrossBlue
$MapPatternShot X=-800 Y=850 SHOT=CrossGreen
$MapPatternShot X=-800 Y=900 SHOT=CrossBlue
$MapPatternShot X=-800 Y=950 SHOT=CrossGreen
$MapPatternShot X=-800 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-750 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-750 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-750 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-750 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-750 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-750 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-750 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-750 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-750 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-750 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-750 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-750 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-750 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-750 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-750 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-750 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-750 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-750 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-750 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-750 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-750 Y=0 SHOT=CrossBlue
$MapPatternShot X=-750 Y=50 SHOT=CrossGreen
$MapPatternShot X=-750 Y=100 SHOT=CrossBlue
$MapPatternShot X=-750 Y=150 SHOT=CrossGreen
$MapPatternShot X=-750 Y=200 SHOT=CrossBlue
$MapPatternShot X=-750 Y=250 SHOT=CrossGreen
$MapPatternShot X=-750 Y=300 SHOT=CrossBlue
$MapPatternShot X=-750 Y=350 SHOT=CrossGreen
$MapPatternShot X=-750 Y=400 SHOT=CrossBlue
$MapPatternShot X=-750 Y=450 SHOT=CrossGreen
$MapPatternShot X=-750 Y=500 SHOT=CrossBlue
$MapPatternShot X=-750 Y=550 SHOT=CrossGreen
$MapPatternShot X=-750 Y=600 SHOT=CrossBlue
$MapPatternShot X=-750 Y=650 SHOT=CrossGreen
$MapPatternShot X=-750 Y=700 SHOT=CrossBlue
$MapPatternShot X=-750 Y=750 SHOT=CrossGreen
$MapPatternShot X=-750 Y=800 SHOT=CrossBlue
$MapPatternShot X=-750 Y=850 SHOT=CrossGreen
$MapPatternShot X=-750 Y=900 SHOT=CrossBlue
$MapPatternShot X=-750 Y=950 SHOT=CrossGreen
$MapPatternShot X=-750 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-700 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-700 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-700 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-700 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-700 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-700 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-700 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-700 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-700 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-700 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-700 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-700 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-700 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-700 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-700 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-700 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-700 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-700 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-700 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-700 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-700 Y=0 SHOT=CrossBlue
$MapPatternShot X=-700 Y=50 SHOT=CrossGreen
$MapPatternShot X=-700 Y=100 SHOT=CrossBlue
$MapPatternShot X=-700 Y=150 SHOT=CrossGreen
$MapPatternShot X=-700 Y=200 SHOT=CrossBlue
$MapPatternShot X=-700 Y=250 SHOT=CrossGreen
$MapPatternShot X=-700 Y=300 SHOT=CrossBlue
$MapPatternShot X=-700 Y=350 SHOT=CrossGreen
$MapPatternShot X=-700 Y=400 SHOT=CrossBlue
$MapPatternShot X=-700 Y=450 SHOT=CrossGreen
$MapPatternShot X=-700 Y=500 SHOT=CrossBlue
$MapPatternShot X=-700 Y=550 SHOT=CrossGreen
$MapPatternShot X=-700 Y=600 SHOT=CrossBlue
$MapPatternShot X=-700 Y=650 SHOT=CrossGreen
$MapPatternShot X=-700 Y=700 SHOT=CrossBlue
$MapPatternShot X=-700 Y=750 SHOT=CrossGreen
$MapPatternShot X=-700 Y=800 SHOT=CrossBlue
$MapPatternShot X=-700 Y=850 SHOT=CrossGreen
$MapPatternShot X=-700 Y=900 SHOT=CrossBlue
$MapPatternShot X=-700 Y=950 SHOT=CrossGreen
$MapPatternShot X=-700 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-650 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-650 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-650 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-650 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-650 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-650 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-650 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-650 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-650 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-650 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-650 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-650 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-650 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-650 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-650 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-650 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-650 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-650 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-650 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-650 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-650 Y=0 SHOT=CrossBlue
$MapPatternShot X=-650 Y=50 SHOT=CrossGreen
$MapPatternShot X=-650 Y=100 SHOT=CrossBlue
$MapPatternShot X=-650 Y=150 SHOT=CrossGreen
$MapPatternShot X=-650 Y=200 SHOT=CrossBlue
$MapPatternShot X=-650 Y=250 SHOT=CrossGreen
$MapPatternShot X=-650 Y=300 SHOT=CrossBlue
$MapPatternShot X=-650 Y=350 SHOT=CrossGreen
$MapPatternShot X=-650 Y=400 SHOT=CrossBlue
$MapPatternShot X=-650 Y=450 SHOT=CrossGreen
$MapPatternShot X=-650 Y=500 SHOT=CrossBlue
$MapPatternShot X=-650 Y=550 SHOT=CrossGreen
$MapPatternShot X=-650 Y=600 SHOT=CrossBlue
$MapPatternShot X=-650 Y=650 SHOT=CrossGreen
$MapPatternShot X=-650 Y=700 SHOT=CrossBlue
$MapPatternShot X=-650 Y=750 SHOT=CrossGreen
$MapPatternShot X=-650 Y=800 SHOT=CrossBlue
$MapPatternShot X=-650 Y=850 SHOT=CrossGreen
$MapPatternShot X=-650 Y=900 SHOT=CrossBlue
$MapPatternShot X=-650 Y=950 SHOT=CrossGreen
$MapPatternShot X=-650 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-600 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-600 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-600 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-600 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-600 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-600 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-600 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-600 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-600 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-600 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-600 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-600 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-600 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-600 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-600 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-600 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-600 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-600 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-600 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-600 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-600 Y=0 SHOT=CrossBlue
$MapPatternShot X=-600 Y=50 SHOT=CrossGreen
$MapPatternShot X=-600 Y=100 SHOT=CrossBlue
$MapPatternShot X=-600 Y=150 SHOT=CrossGreen
$MapPatternShot X=-600 Y=200 SHOT=CrossBlue
$MapPatternShot X=-600 Y=250 SHOT=CrossGreen
$MapPatternShot X=-600 Y=300 SHOT=CrossBlue
$MapPatternShot X=-600 Y=350 SHOT=CrossGreen
$MapPatternShot X=-600 Y=400 SHOT=CrossBlue
$MapPatternShot X=-600 Y=450 SHOT=CrossGreen
$MapPatternShot X=-600 Y=500 SHOT=CrossBlue
$MapPatternShot X=-600 Y=550 SHOT=CrossGreen
$MapPatternShot X=-600 Y=600 SHOT=CrossBlue
$MapPatternShot X=-600 Y=650 SHOT=CrossGreen
$MapPatternShot X=-600 Y=700 SHOT=CrossBlue
$MapPatternShot X=-600 Y=750 SHOT=CrossGreen
$MapPatternShot X=-600 Y=800 SHOT=CrossBlue
$MapPatternShot X=-600 Y=850 SHOT=CrossGreen
$MapPatternShot X=-600 Y=900 SHOT=CrossBlue
$MapPatternShot X=-600 Y=950 SHOT=CrossGreen
$MapPatternShot X=-600 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-550 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-550 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-550 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-550 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-550 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-550 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-550 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-550 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-550 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-550 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-550 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-550 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-550 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-550 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-550 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-550 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-550 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-550 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-550 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-550 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-550 Y=0 SHOT=CrossBlue
$MapPatternShot X=-550 Y=50 SHOT=CrossGreen
$MapPatternShot X=-550 Y=100 SHOT=CrossBlue
$MapPatternShot X=-550 Y=150 SHOT=CrossGreen
$MapPatternShot X=-550 Y=200 SHOT=CrossBlue
$MapPatternShot X=-550 Y=250 SHOT=CrossGreen
$MapPatternShot X=-550 Y=300 SHOT=CrossBlue
$MapPatternShot X=-550 Y=350 SHOT=CrossGreen
$MapPatternShot X=-550 Y=400 SHOT=CrossBlue
$MapPatternShot X=-550 Y=450 SHOT=CrossGreen
$MapPatternShot X=-550 Y=500 SHOT=CrossBlue
$MapPatternShot X=-550 Y=550 SHOT=CrossGreen
$MapPatternShot X=-550 Y=600 SHOT=CrossBlue
$MapPatternShot X=-550 Y=650 SHOT=CrossGreen
$MapPatternShot X=-550 Y=700 SHOT=CrossBlue
$MapPatternShot X=-550 Y=750 SHOT=CrossGreen
$MapPatternShot X=-550 Y=800 SHOT=CrossBlue
$MapPatternShot X=-550 Y=850 SHOT=CrossGreen
$MapPatternShot X=-550 Y=900 SHOT=CrossBlue
$MapPatternShot X=-550 Y=950 SHOT=CrossGreen
$MapPatternShot X=-550 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-500 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-500 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-500 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-500 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-500 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-500 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-500 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-500 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-500 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-500 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-500 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-500 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-500 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-500 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-500 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-500 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-500 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-500 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-500 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-500 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-500 Y=0 SHOT=CrossBlue
$MapPatternShot X=-500 Y=50 SHOT=CrossGreen
$MapPatternShot X=-500 Y=100 SHOT=CrossBlue
$MapPatternShot X=-500 Y=150 SHOT=CrossGreen
$MapPatternShot X=-500 Y=200 SHOT=CrossBlue
$MapPatternShot X=-500 Y=250 SHOT=CrossGreen
$MapPatternShot X=-500 Y=300 SHOT=CrossBlue
$MapPatternShot X=-500 Y=350 SHOT=CrossGreen
$MapPatternShot X=-500 Y=400 SHOT=CrossBlue
$MapPatternShot X=-500 Y=450 SHOT=CrossGreen
$MapPatternShot X=-500 Y=500 SHOT=CrossBlue
$MapPatternShot X=-500 Y=550 SHOT=CrossGreen
$MapPatternShot X=-500 Y=600 SHOT=CrossBlue
$MapPatternShot X=-500 Y=650 SHOT=CrossGreen
$MapPatternShot X=-500 Y=700 SHOT=CrossBlue
$MapPatternShot X=-500 Y=750 SHOT=CrossGreen
$MapPatternShot X=-500 Y=800 SHOT=CrossBlue
$MapPatternShot X=-500 Y=850 SHOT=CrossGreen
$MapPatternShot X=-500 Y=900 SHOT=CrossBlue
$MapPatternShot X=-500 Y=950 SHOT=CrossGreen
$MapPatternShot X=-500 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-450 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-450 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-450 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-450 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-450 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-450 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-450 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-450 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-450 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-450 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-450 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-450 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-450 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-450 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-450 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-450 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-450 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-450 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-450 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-450 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-450 Y=0 SHOT=CrossBlue
$MapPatternShot X=-450 Y=50 SHOT=CrossGreen
$MapPatternShot X=-450 Y=100 SHOT=CrossBlue
$MapPatternShot X=-450 Y=150 SHOT=CrossGreen
$MapPatternShot X=-450 Y=200 SHOT=CrossBlue
$MapPatternShot X=-450 Y=250 SHOT=CrossGreen
$MapPatternShot X=-450 Y=300 SHOT=CrossBlue
$MapPatternShot X=-450 Y=350 SHOT=CrossGreen
$MapPatternShot X=-450 Y=400 SHOT=CrossBlue
$MapPatternShot X=-450 Y=450 SHOT=CrossGreen
$MapPatternShot X=-450 Y=500 SHOT=CrossBlue
$MapPatternShot X=-450 Y=550 SHOT=CrossGreen
$MapPatternShot X=-450 Y=600 SHOT=CrossBlue
$MapPatternShot X=-450 Y=650 SHOT=CrossGreen
$MapPatternShot X=-450 Y=700 SHOT=CrossBlue
$MapPatternShot X=-450 Y=750 SHOT=CrossGreen
$MapPatternShot X=-450 Y=800 SHOT=CrossBlue
$MapPatternShot X=-450 Y=850 SHOT=CrossGreen
$MapPatternShot X=-450 Y=900 SHOT=CrossBlue
$MapPatternShot X=-450 Y=950 SHOT=CrossGreen
$MapPatternShot X=-450 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-400 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-400 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-400 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-400 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-400 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-400 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-400 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-400 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-400 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-400 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-400 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-400 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-400 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-400 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-400 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-400 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-400 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-400 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-400 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-400 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-400 Y=0 SHOT=CrossBlue
$MapPatternShot X=-400 Y=50 SHOT=CrossGreen
$MapPatternShot X=-400 Y=100 SHOT=CrossBlue
$MapPatternShot X=-400 Y=150 SHOT=CrossGreen
$MapPatternShot X=-400 Y=200 SHOT=CrossBlue
$MapPatternShot X=-400 Y=250 SHOT=CrossGreen
$MapPatternShot X=-400 Y=300 SHOT=CrossBlue
$MapPatternShot X=-400 Y=350 SHOT=CrossGreen
$MapPatternShot X=-400 Y=400 SHOT=CrossBlue
$MapPatternShot X=-400 Y=450 SHOT=CrossGreen
$MapPatternShot X=-400 Y=500 SHOT=CrossBlue
$MapPatternShot X=-400 Y=550 SHOT=CrossGreen
$MapPatternShot X=-400 Y=600 SHOT=CrossBlue
$MapPatternShot X=-400 Y=650 SHOT=CrossGreen
$MapPatternShot X=-400 Y=700 SHOT=CrossBlue
$MapPatternShot X=-400 Y=750 SHOT=CrossGreen
$MapPatternShot X=-400 Y=800 SHOT=CrossBlue
$MapPatternShot X=-400 Y=850 SHOT=CrossGreen
$MapPatternShot X=-400 Y=900 SHOT=CrossBlue
$MapPatternShot X=-400 Y=950 SHOT=CrossGreen
$MapPatternShot X=-400 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-350 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-350 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-350 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-350 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-350 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-350 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-350 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-350 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-350 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-350 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-350 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-350 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-350 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-350 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-350 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-350 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-350 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-350 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-350 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-350 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-350 Y=0 SHOT=CrossBlue
$MapPatternShot X=-350 Y=50 SHOT=CrossGreen
$MapPatternShot X=-350 Y=100 SHOT=CrossBlue
$MapPatternShot X=-350 Y=150 SHOT=CrossGreen
$MapPatternShot X=-350 Y=200 SHOT=CrossBlue
$MapPatternShot X=-350 Y=250 SHOT=CrossGreen
$MapPatternShot X=-350 Y=300 SHOT=CrossBlue
$MapPatternShot X=-350 Y=350 SHOT=CrossGreen
$MapPatternShot X=-350 Y=400 SHOT=CrossBlue
$MapPatternShot X=-350 Y=450 SHOT=CrossGreen
$MapPatternShot X=-350 Y=500 SHOT=CrossBlue
$MapPatternShot X=-350 Y=550 SHOT=CrossGreen
$MapPatternShot X=-350 Y=600 SHOT=CrossBlue
$MapPatternShot X=-350 Y=650 SHOT=CrossGreen
$MapPatternShot X=-350 Y=700 SHOT=CrossBlue
$MapPatternShot X=-350 Y=750 SHOT=CrossGreen
$MapPatternShot X=-350 Y=800 SHOT=CrossBlue
$MapPatternShot X=-350 Y=850 SHOT=CrossGreen
$MapPatternShot X=-350 Y=900 SHOT=CrossBlue
$MapPatternShot X=-350 Y=950 SHOT=CrossGreen
$MapPatternShot X=-350 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-300 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-300 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-300 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-300 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-300 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-300 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-300 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-300 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-300 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-300 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-300 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-300 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-300 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-300 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-300 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-300 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-300 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-300 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-300 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-300 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-300 Y=0 SHOT=CrossBlue
$MapPatternShot X=-300 Y=50 SHOT=CrossGreen
$MapPatternShot X=-300 Y=100 SHOT=CrossBlue
$MapPatternShot X=-300 Y=150 SHOT=CrossGreen
$MapPatternShot X=-300 Y=200 SHOT=CrossBlue
$MapPatternShot X=-300 Y=250 SHOT=CrossGreen
$MapPatternShot X=-300 Y=300 SHOT=CrossBlue
$MapPatternShot X=-300 Y=350 SHOT=CrossGreen
$MapPatternShot X=-300 Y=400 SHOT=CrossBlue
$MapPatternShot X=-300 Y=450 SHOT=CrossGreen
$MapPatternShot X=-300 Y=500 SHOT=CrossBlue
$MapPatternShot X=-300 Y=550 SHOT=CrossGreen
$MapPatternShot X=-300 Y=600 SHOT=CrossBlue
$MapPatternShot X=-300 Y=650 SHOT=CrossGreen
$MapPatternShot X=-300 Y=700 SHOT=CrossBlue
$MapPatternShot X=-300 Y=750 SHOT=CrossGreen
$MapPatternShot X=-300 Y=800 SHOT=CrossBlue
$MapPatternShot X=-300 Y=850 SHOT=CrossGreen
$MapPatternShot X=-300 Y=900 SHOT=CrossBlue
$MapPatternShot X=-300 Y=950 SHOT=CrossGreen
$MapPatternShot X=-300 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-250 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-250 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-250 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-250 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-250 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-250 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-250 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-250 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-250 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-250 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-250 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-250 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-250 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-250 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-250 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-250 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-250 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-250 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-250 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-250 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-250 Y=0 SHOT=CrossBlue
$MapPatternShot X=-250 Y=50 SHOT=CrossGreen
$MapPatternShot X=-250 Y=100 SHOT=CrossBlue
$MapPatternShot X=-250 Y=150 SHOT=CrossGreen
$MapPatternShot X=-250 Y=200 SHOT=CrossBlue
$MapPatternShot X=-250 Y=250 SHOT=CrossGreen
$MapPatternShot X=-250 Y=300 SHOT=CrossBlue
$MapPatternShot X=-250 Y=350 SHOT=CrossGreen
$MapPatternShot X=-250 Y=400 SHOT=CrossBlue
$MapPatternShot X=-250 Y=450 SHOT=CrossGreen
$MapPatternShot X=-250 Y=500 SHOT=CrossBlue
$MapPatternShot X=-250 Y=550 SHOT=CrossGreen
$MapPatternShot X=-250 Y=600 SHOT=CrossBlue
$MapPatternShot X=-250 Y=650 SHOT=CrossGreen
$MapPatternShot X=-250 Y=700 SHOT=CrossBlue
$MapPatternShot X=-250 Y=750 SHOT=CrossGreen
$MapPatternShot X=-250 Y=800 SHOT=CrossBlue
$MapPatternShot X=-250 Y=850 SHOT=CrossGreen
$MapPatternShot X=-250 Y=900 SHOT=CrossBlue
$MapPatternShot X=-250 Y=950 SHOT=CrossGreen
$MapPatternShot X=-250 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-200 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-200 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-200 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-200 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-200 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-200 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-200 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-200 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-200 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-200 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-200 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-200 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-200 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-200 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-200 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-200 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-200 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-200 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-200 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-200 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-200 Y=0 SHOT=CrossBlue
$MapPatternShot X=-200 Y=50 SHOT=CrossGreen
$MapPatternShot X=-200 Y=100 SHOT=CrossBlue
$MapPatternShot X=-200 Y=150 SHOT=CrossGreen
$MapPatternShot X=-200 Y=200 SHOT=CrossBlue
$MapPatternShot X=-200 Y=250 SHOT=CrossGreen
$MapPatternShot X=-200 Y=300 SHOT=CrossBlue
$MapPatternShot X=-200 Y=350 SHOT=CrossGreen
$MapPatternShot X=-200 Y=400 SHOT=CrossBlue
$MapPatternShot X=-200 Y=450 SHOT=CrossGreen
$MapPatternShot X=-200 Y=500 SHOT=CrossBlue
$MapPatternShot X=-200 Y=550 SHOT=CrossGreen
$MapPatternShot X=-200 Y=600 SHOT=CrossBlue
$MapPatternShot X=-200 Y=650 SHOT=CrossGreen
$MapPatternShot X=-200 Y=700 SHOT=CrossBlue
$MapPatternShot X=-200 Y=750 SHOT=CrossGreen
$MapPatternShot X=-200 Y=800 SHOT=CrossBlue
$MapPatternShot X=-200 Y=850 SHOT=CrossGreen
$MapPatternShot X=-200 Y=900 SHOT=CrossBlue
$MapPatternShot X=-200 Y=950 SHOT=CrossGreen
$MapPatternShot X=-200 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-150 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-150 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-150 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-150 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-150 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-150 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-150 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-150 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-150 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-150 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-150 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-150 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-150 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-150 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-150 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-150 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-150 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-150 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-150 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-150 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-150 Y=0 SHOT=CrossBlue
$MapPatternShot X=-150 Y=50 SHOT=CrossGreen
$MapPatternShot X=-150 Y=100 SHOT=CrossBlue
$MapPatternShot X=-150 Y=150 SHOT=CrossGreen
$MapPatternShot X=-150 Y=200 SHOT=CrossBlue
$MapPatternShot X=-150 Y=250 SHOT=CrossGreen
$MapPatternShot X=-150 Y=300 SHOT=CrossBlue
$MapPatternShot X=-150 Y=350 SHOT=CrossGreen
$MapPatternShot X=-150 Y=400 SHOT=CrossBlue
$MapPatternShot X=-150 Y=450 SHOT=CrossGreen
$MapPatternShot X=-150 Y=500 SHOT=CrossBlue
$MapPatternShot X=-150 Y=550 SHOT=CrossGreen
$MapPatternShot X=-150 Y=600 SHOT=CrossBlue
$MapPatternShot X=-150 Y=650 SHOT=CrossGreen
$MapPatternShot X=-150 Y=700 SHOT=CrossBlue
$MapPatternShot X=-150 Y=750 SHOT=CrossGreen
$MapPatternShot X=-150 Y=800 SHOT=CrossBlue
$MapPatternShot X=-150 Y=850 SHOT=CrossGreen
$MapPatternShot X=-150 Y=900 SHOT=CrossBlue
$MapPatternShot X=-150 Y=950 SHOT=CrossGreen
$MapPatternShot X=-150 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-100 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-100 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-100 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-100 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-100 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-100 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-100 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-100 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-100 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-100 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-100 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-100 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-100 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-100 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-100 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-100 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-100 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-100 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-100 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-100 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-100 Y=0 SHOT=CrossBlue
$MapPatternShot X=-100 Y=50 SHOT=CrossGreen
$MapPatternShot X=-100 Y=100 SHOT=CrossBlue
$MapPatternShot X=-100 Y=150 SHOT=CrossGreen
$MapPatternShot X=-100 Y=200 SHOT=CrossBlue
$MapPatternShot X=-100 Y=250 SHOT=CrossGreen
$MapPatternShot X=-100 Y=300 SHOT=CrossBlue
$MapPatternShot X=-100 Y=350 SHOT=CrossGreen
$MapPatternShot X=-100 Y=400 SHOT=CrossBlue
$MapPatternShot X=-100 Y=450 SHOT=CrossGreen
$MapPatternShot X=-100 Y=500 SHOT=CrossBlue
$MapPatternShot X=-100 Y=550 SHOT=CrossGreen
$MapPatternShot X=-100 Y=600 SHOT=CrossBlue
$MapPatternShot X=-100 Y=650 SHOT=CrossGreen
$MapPatternShot X=-100 Y=700 SHOT=CrossBlue
$MapPatternShot X=-100 Y=750 SHOT=CrossGreen
$MapPatternShot X=-100 Y=800 SHOT=CrossBlue
$MapPatternShot X=-100 Y=850 SHOT=CrossGreen
$MapPatternShot X=-100 Y=900 SHOT=CrossBlue
$MapPatternShot X=-100 Y=950 SHOT=CrossGreen
$MapPatternShot X=-100 Y=1000 SHOT=CrossBlue
$MapPatternShot X=-50 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=-50 Y=-950 SHOT=CrossGreen
$MapPatternShot X=-50 Y=-900 SHOT=CrossBlue
$MapPatternShot X=-50 Y=-850 SHOT=CrossGreen
$MapPatternShot X=-50 Y=-800 SHOT=CrossBlue
$MapPatternShot X=-50 Y=-750 SHOT=CrossGreen
$MapPatternShot X=-50 Y=-700 SHOT=CrossBlue
$MapPatternShot X=-50 Y=-650 SHOT=CrossGreen
$MapPatternShot X=-50 Y=-600 SHOT=CrossBlue
$MapPatternShot X=-50 Y=-550 SHOT=CrossGreen
$MapPatternShot X=-50 Y=-500 SHOT=CrossBlue
$MapPatternShot X=-50 Y=-450 SHOT=CrossGreen
$MapPatternShot X=-50 Y=-400 SHOT=CrossBlue
$MapPatternShot X=-50 Y=-350 SHOT=CrossGreen
$MapPatternShot X=-50 Y=-300 SHOT=CrossBlue
$MapPatternShot X=-50 Y=-250 SHOT=CrossGreen
$MapPatternShot X=-50 Y=-200 SHOT=CrossBlue
$MapPatternShot X=-50 Y=-150 SHOT=CrossGreen
$MapPatternShot X=-50 Y=-100 SHOT=CrossBlue
$MapPatternShot X=-50 Y=-50 SHOT=CrossGreen
$MapPatternShot X=-50 Y=0 SHOT=CrossBlue
$MapPatternShot X=-50 Y=50 SHOT=CrossGreen
$MapPatternShot X=-50 Y=100 SHOT=CrossBlue
$MapPatternShot X=-50 Y=150 SHOT=CrossGreen
$MapPatternShot X=-50 Y=200 SHOT=CrossBlue
$MapPatternShot X=-50 Y=250 SHOT=CrossGreen
$MapPatternShot X=-50 Y=300 SHOT=CrossBlue
$MapPatternShot X=-50 Y=350 SHOT=CrossGreen
$MapPatternShot X=-50 Y=400 SHOT=CrossBlue
$MapPatternShot X=-50 Y=450 SHOT=CrossGreen
$MapPatternShot X=-50 Y=500 SHOT=CrossBlue
$MapPatternShot X=-50 Y=550 SHOT=CrossGreen
$MapPatternShot X=-50 Y=600 SHOT=CrossBlue
$MapPatternShot X=-50 Y=650 SHOT=CrossGreen
$MapPatternShot X=-50 Y=700 SHOT=CrossBlue
$MapPatternShot X=-50 Y=750 SHOT=CrossGreen
$MapPatternShot X=-50 Y=800 SHOT=CrossBlue
$MapPatternShot X=-50 Y=850 SHOT=CrossGreen
$MapPatternShot X=-50 Y=900 SHOT=CrossBlue
$MapPatternShot X=-50 Y=950 SHOT=CrossGreen
$MapPatternShot X=-50 Y=1000 SHOT=CrossBlue
$MapPatternShot X=0 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=0 Y=-950 SHOT=CrossGreen
$MapPatternShot X=0 Y=-900 SHOT=CrossBlue
$MapPatternShot X=0 Y=-850 SHOT=CrossGreen
$MapPatternShot X=0 Y=-800 SHOT=CrossBlue
$MapPatternShot X=0 Y=-750 SHOT=CrossGreen
$MapPatternShot X=0 Y=-700 SHOT=CrossBlue
$MapPatternShot X=0 Y=-650 SHOT=CrossGreen
$MapPatternShot X=0 Y=-600 SHOT=CrossBlue
$MapPatternShot X=0 Y=-550 SHOT=CrossGreen
$MapPatternShot X=0 Y=-500 SHOT=CrossBlue
$MapPatternShot X=0 Y=-450 SHOT=CrossGreen
$MapPatternShot X=0 Y=-400 SHOT=CrossBlue
$MapPatternShot X=0 Y=-350 SHOT=CrossGreen
$MapPatternShot X=0 Y=-300 SHOT=CrossBlue
$MapPatternShot X=0 Y=-250 SHOT=CrossGreen
$MapPatternShot X=0 Y=-200 SHOT=CrossBlue
$MapPatternShot X=0 Y=-150 SHOT=CrossGreen
$MapPatternShot X=0 Y=-100 SHOT=CrossBlue
$MapPatternShot X=0 Y=-50 SHOT=CrossGreen
$MapPatternShot X=0 Y=0 SHOT=CrossBlue
$MapPatternShot X=0 Y=50 SHOT=CrossGreen
$MapPatternShot X=0 Y=100 SHOT=CrossBlue
$MapPatternShot X=0 Y=150 SHOT=CrossGreen
$MapPatternShot X=0 Y=200 SHOT=CrossBlue
$MapPatternShot X=0 Y=250 SHOT=CrossGreen
$MapPatternShot X=0 Y=300 SHOT=CrossBlue
$MapPatternShot X=0 Y=350 SHOT=CrossGreen
$MapPatternShot X=0 Y=400 SHOT=CrossBlue
$MapPatternShot X=0 Y=450 SHOT=CrossGreen
$MapPatternShot X=0 Y=500 SHOT=CrossBlue
$MapPatternShot X=0 Y=550 SHOT=CrossGreen
$MapPatternShot X=0 Y=600 SHOT=CrossBlue
$MapPatternShot X=0 Y=650 SHOT=CrossGreen
$MapPatternShot X=0 Y=700 SHOT=CrossBlue
$MapPatternShot X=0 Y=750 SHOT=CrossGreen
$MapPatternShot X=0 Y=800 SHOT=CrossBlue
$MapPatternShot X=0 Y=850 SHOT=CrossGreen
$MapPatternShot X=0 Y=900 SHOT=CrossBlue
$MapPatternShot X=0 Y=950 SHOT=CrossGreen
$MapPatternShot X=0 Y=1000 SHOT=CrossBlue
$MapPatternShot X=50 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=50 Y=-950 SHOT=CrossGreen
$MapPatternShot X=50 Y=-900 SHOT=CrossBlue
$MapPatternShot X=50 Y=-850 SHOT=CrossGreen
$MapPatternShot X=50 Y=-800 SHOT=CrossBlue
$MapPatternShot X=50 Y=-750 SHOT=CrossGreen
$MapPatternShot X=50 Y=-700 SHOT=CrossBlue
$MapPatternShot X=50 Y=-650 SHOT=CrossGreen
$MapPatternShot X=50 Y=-600 SHOT=CrossBlue
$MapPatternShot X=50 Y=-550 SHOT=CrossGreen
$MapPatternShot X=50 Y=-500 SHOT=CrossBlue
$MapPatternShot X=50 Y=-450 SHOT=CrossGreen
$MapPatternShot X=50 Y=-400 SHOT=CrossBlue
$MapPatternShot X=50 Y=-350 SHOT=CrossGreen
$MapPatternShot X=50 Y=-300 SHOT=CrossBlue
$MapPatternShot X=50 Y=-250 SHOT=CrossGreen
$MapPatternShot X=50 Y=-200 SHOT=CrossBlue
$MapPatternShot X=50 Y=-150 SHOT=CrossGreen
$MapPatternShot X=50 Y=-100 SHOT=CrossBlue
$MapPatternShot X=50 Y=-50 SHOT=CrossGreen
$MapPatternShot X=50 Y=0 SHOT=CrossBlue
$MapPatternShot X=50 Y=50 SHOT=CrossGreen
$MapPatternShot X=50 Y=100 SHOT=CrossBlue
$MapPatternShot X=50 Y=150 SHOT=CrossGreen
$MapPatternShot X=50 Y=200 SHOT=CrossBlue
$MapPatternShot X=50 Y=250 SHOT=CrossGreen
$MapPatternShot X=50 Y=300 SHOT=CrossBlue
$MapPatternShot X=50 Y=350 SHOT=CrossGreen
$MapPatternShot X=50 Y=400 SHOT=CrossBlue
$MapPatternShot X=50 Y=450 SHOT=CrossGreen
$MapPatternShot X=50 Y=500 SHOT=CrossBlue
$MapPatternShot X=50 Y=550 SHOT=CrossGreen
$MapPatternShot X=50 Y=600 SHOT=CrossBlue
$MapPatternShot X=50 Y=650 SHOT=CrossGreen
$MapPatternShot X=50 Y=700 SHOT=CrossBlue
$MapPatternShot X=50 Y=750 SHOT=CrossGreen
$MapPatternShot X=50 Y=800 SHOT=CrossBlue
$MapPatternShot X=50 Y=850 SHOT=CrossGreen
$MapPatternShot X=50 Y=900 SHOT=CrossBlue
$MapPatternShot X=50 Y=950 SHOT=CrossGreen
$MapPatternShot X=50 Y=1000 SHOT=CrossBlue
$MapPatternShot X=100 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=100 Y=-950 SHOT=CrossGreen
$MapPatternShot X=100 Y=-900 SHOT=CrossBlue
$MapPatternShot X=100 Y=-850 SHOT=CrossGreen
$MapPatternShot X=100 Y=-800 SHOT=CrossBlue
$MapPatternShot X=100 Y=-750 SHOT=CrossGreen
$MapPatternShot X=100 Y=-700 SHOT=CrossBlue
$MapPatternShot X=100 Y=-650 SHOT=CrossGreen
$MapPatternShot X=100 Y=-600 SHOT=CrossBlue
$MapPatternShot X=100 Y=-550 SHOT=CrossGreen
$MapPatternShot X=100 Y=-500 SHOT=CrossBlue
$MapPatternShot X=100 Y=-450 SHOT=CrossGreen
$MapPatternShot X=100 Y=-400 SHOT=CrossBlue
$MapPatternShot X=100 Y=-350 SHOT=CrossGreen
$MapPatternShot X=100 Y=-300 SHOT=CrossBlue
$MapPatternShot X=100 Y=-250 SHOT=CrossGreen
$MapPatternShot X=100 Y=-200 SHOT=CrossBlue
$MapPatternShot X=100 Y=-150 SHOT=CrossGreen
$MapPatternShot X=100 Y=-100 SHOT=CrossBlue
$MapPatternShot X=100 Y=-50 SHOT=CrossGreen
$MapPatternShot X=100 Y=0 SHOT=CrossBlue
$MapPatternShot X=100 Y=50 SHOT=CrossGreen
$MapPatternShot X=100 Y=100 SHOT=CrossBlue
$MapPatternShot X=100 Y=150 SHOT=CrossGreen
$MapPatternShot X=100 Y=200 SHOT=CrossBlue
$MapPatternShot X=100 Y=250 SHOT=CrossGreen
$MapPatternShot X=100 Y=300 SHOT=CrossBlue
$MapPatternShot X=100 Y=350 SHOT=CrossGreen
$MapPatternShot X=100 Y=400 SHOT=CrossBlue
$MapPatternShot X=100 Y=450 SHOT=CrossGreen
$MapPatternShot X=100 Y=500 SHOT=CrossBlue
$MapPatternShot X=100 Y=550 SHOT=CrossGreen
$MapPatternShot X=100 Y=600 SHOT=CrossBlue
$MapPatternShot X=100 Y=650 SHOT=CrossGreen
$MapPatternShot X=100 Y=700 SHOT=CrossBlue
$MapPatternShot X=100 Y=750 SHOT=CrossGreen
$MapPatternShot X=100 Y=800 SHOT=CrossBlue
$MapPatternShot X=100 Y=850 SHOT=CrossGreen
$MapPatternShot X=100 Y=900 SHOT=CrossBlue
$MapPatternShot X=100 Y=950 SHOT=CrossGreen
$MapPatternShot X=100 Y=1000 SHOT=CrossBlue
$MapPatternShot X=150 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=150 Y=-950 SHOT=CrossGreen
$MapPatternShot X=150 Y=-900 SHOT=CrossBlue
$MapPatternShot X=150 Y=-850 SHOT=CrossGreen
$MapPatternShot X=150 Y=-800 SHOT=CrossBlue
$MapPatternShot X=150 Y=-750 SHOT=CrossGreen
$MapPatternShot X=150 Y=-700 SHOT=CrossBlue
$MapPatternShot X=150 Y=-650 SHOT=CrossGreen
$MapPatternShot X=150 Y=-600 SHOT=CrossBlue
$MapPatternShot X=150 Y=-550 SHOT=CrossGreen
$MapPatternShot X=150 Y=-500 SHOT=CrossBlue
$MapPatternShot X=150 Y=-450 SHOT=CrossGreen
$MapPatternShot X=150 Y=-400 SHOT=CrossBlue
$MapPatternShot X=150 Y=-350 SHOT=CrossGreen
$MapPatternShot X=150 Y=-300 SHOT=CrossBlue
$MapPatternShot X=150 Y=-250 SHOT=CrossGreen
$MapPatternShot X=150 Y=-200 SHOT=CrossBlue
$MapPatternShot X=150 Y=-150 SHOT=CrossGreen
$MapPatternShot X=150 Y=-100 SHOT=CrossBlue
$MapPatternShot X=150 Y=-50 SHOT=CrossGreen
$MapPatternShot X=150 Y=0 SHOT=CrossBlue
$MapPatternShot X=150 Y=50 SHOT=CrossGreen
$MapPatternShot X=150 Y=100 SHOT=CrossBlue
$MapPatternShot X=150 Y=150 SHOT=CrossGreen
$MapPatternShot X=150 Y=200 SHOT=CrossBlue
$MapPatternShot X=150 Y=250 SHOT=CrossGreen
$MapPatternShot X=150 Y=300 SHOT=CrossBlue
$MapPatternShot X=150 Y=350 SHOT=CrossGreen
$MapPatternShot X=150 Y=400 SHOT=CrossBlue
$MapPatternShot X=150 Y=450 SHOT=CrossGreen
$MapPatternShot X=150 Y=500 SHOT=CrossBlue
$MapPatternShot X=150 Y=550 SHOT=CrossGreen
$MapPatternShot X=150 Y=600 SHOT=CrossBlue
$MapPatternShot X=150 Y=650 SHOT=CrossGreen
$MapPatternShot X=150 Y=700 SHOT=CrossBlue
$MapPatternShot X=150 Y=750 SHOT=CrossGreen
$MapPatternShot X=150 Y=800 SHOT=CrossBlue
$MapPatternShot X=150 Y=850 SHOT=CrossGreen
$MapPatternShot X=150 Y=900 SHOT=CrossBlue
$MapPatternShot X=150 Y=950 SHOT=CrossGreen
$MapPatternShot X=150 Y=1000 SHOT=CrossBlue
$MapPatternShot X=200 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=200 Y=-950 SHOT=CrossGreen
$MapPatternShot X=200 Y=-900 SHOT=CrossBlue
$MapPatternShot X=200 Y=-850 SHOT=CrossGreen
$MapPatternShot X=200 Y=-800 SHOT=CrossBlue
$MapPatternShot X=200 Y=-750 SHOT=CrossGreen
$MapPatternShot X=200 Y=-700 SHOT=CrossBlue
$MapPatternShot X=200 Y=-650 SHOT=CrossGreen
$MapPatternShot X=200 Y=-600 SHOT=CrossBlue
$MapPatternShot X=200 Y=-550 SHOT=CrossGreen
$MapPatternShot X=200 Y=-500 SHOT=CrossBlue
$MapPatternShot X=200 Y=-450 SHOT=CrossGreen
$MapPatternShot X=200 Y=-400 SHOT=CrossBlue
$MapPatternShot X=200 Y=-350 SHOT=CrossGreen
$MapPatternShot X=200 Y=-300 SHOT=CrossBlue
$MapPatternShot X=200 Y=-250 SHOT=CrossGreen
$MapPatternShot X=200 Y=-200 SHOT=CrossBlue
$MapPatternShot X=200 Y=-150 SHOT=CrossGreen
$MapPatternShot X=200 Y=-100 SHOT=CrossBlue
$MapPatternShot X=200 Y=-50 SHOT=CrossGreen
$MapPatternShot X=200 Y=0 SHOT=CrossBlue
$MapPatternShot X=200 Y=50 SHOT=CrossGreen
$MapPatternShot X=200 Y=100 SHOT=CrossBlue
$MapPatternShot X=200 Y=150 SHOT=CrossGreen
$MapPatternShot X=200 Y=200 SHOT=CrossBlue
$MapPatternShot X=200 Y=250 SHOT=CrossGreen
$MapPatternShot X=200 Y=300 SHOT=CrossBlue
$MapPatternShot X=200 Y=350 SHOT=CrossGreen
$MapPatternShot X=200 Y=400 SHOT=CrossBlue
$MapPatternShot X=200 Y=450 SHOT=CrossGreen
$MapPatternShot X=200 Y=500 SHOT=CrossBlue
$MapPatternShot X=200 Y=550 SHOT=CrossGreen
$MapPatternShot X=200 Y=600 SHOT=CrossBlue
$MapPatternShot X=200 Y=650 SHOT=CrossGreen
$MapPatternShot X=200 Y=700 SHOT=CrossBlue
$MapPatternShot X=200 Y=750 SHOT=CrossGreen
$MapPatternShot X=200 Y=800 SHOT=CrossBlue
$MapPatternShot X=200 Y=850 SHOT=CrossGreen
$MapPatternShot X=200 Y=900 SHOT=CrossBlue
$MapPatternShot X=200 Y=950 SHOT=CrossGreen
$MapPatternShot X=200 Y=1000 SHOT=CrossBlue
$MapPatternShot X=250 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=250 Y=-950 SHOT=CrossGreen
$MapPatternShot X=250 Y=-900 SHOT=CrossBlue
$MapPatternShot X=250 Y=-850 SHOT=CrossGreen
$MapPatternShot X=250 Y=-800 SHOT=CrossBlue
$MapPatternShot X=250 Y=-750 SHOT=CrossGreen
$MapPatternShot X=250 Y=-700 SHOT=CrossBlue
$MapPatternShot X=250 Y=-650 SHOT=CrossGreen
$MapPatternShot X=250 Y=-600 SHOT=CrossBlue
$MapPatternShot X=250 Y=-550 SHOT=CrossGreen
$MapPatternShot X=250 Y=-500 SHOT=CrossBlue
$MapPatternShot X=250 Y=-450 SHOT=CrossGreen
$MapPatternShot X=250 Y=-400 SHOT=CrossBlue
$MapPatternShot X=250 Y=-350 SHOT=CrossGreen
$MapPatternShot X=250 Y=-300 SHOT=CrossBlue
$MapPatternShot X=250 Y=-250 SHOT=CrossGreen
$MapPatternShot X=250 Y=-200 SHOT=CrossBlue
$MapPatternShot X=250 Y=-150 SHOT=CrossGreen
$MapPatternShot X=250 Y=-100 SHOT=CrossBlue
$MapPatternShot X=250 Y=-50 SHOT=CrossGreen
$MapPatternShot X=250 Y=0 SHOT=CrossBlue
$MapPatternShot X=250 Y=50 SHOT=CrossGreen
$MapPatternShot X=250 Y=100 SHOT=CrossBlue
$MapPatternShot X=250 Y=150 SHOT=CrossGreen
$MapPatternShot X=250 Y=200 SHOT=CrossBlue
$MapPatternShot X=250 Y=250 SHOT=CrossGreen
$MapPatternShot X=250 Y=300 SHOT=CrossBlue
$MapPatternShot X=250 Y=350 SHOT=CrossGreen
$MapPatternShot X=250 Y=400 SHOT=CrossBlue
$MapPatternShot X=250 Y=450 SHOT=CrossGreen
$MapPatternShot X=250 Y=500 SHOT=CrossBlue
$MapPatternShot X=250 Y=550 SHOT=CrossGreen
$MapPatternShot X=250 Y=600 SHOT=CrossBlue
$MapPatternShot X=250 Y=650 SHOT=CrossGreen
$MapPatternShot X=250 Y=700 SHOT=CrossBlue
$MapPatternShot X=250 Y=750 SHOT=CrossGreen
$MapPatternShot X=250 Y=800 SHOT=CrossBlue
$MapPatternShot X=250 Y=850 SHOT=CrossGreen
$MapPatternShot X=250 Y=900 SHOT=CrossBlue
$MapPatternShot X=250 Y=950 SHOT=CrossGreen
$MapPatternShot X=250 Y=1000 SHOT=CrossBlue
$MapPatternShot X=300 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=300 Y=-950 SHOT=CrossGreen
$MapPatternShot X=300 Y=-900 SHOT=CrossBlue
$MapPatternShot X=300 Y=-850 SHOT=CrossGreen
$MapPatternShot X=300 Y=-800 SHOT=CrossBlue
$MapPatternShot X=300 Y=-750 SHOT=CrossGreen
$MapPatternShot X=300 Y=-700 SHOT=CrossBlue
$MapPatternShot X=300 Y=-650 SHOT=CrossGreen
$MapPatternShot X=300 Y=-600 SHOT=CrossBlue
$MapPatternShot X=300 Y=-550 SHOT=CrossGreen
$MapPatternShot X=300 Y=-500 SHOT=CrossBlue
$MapPatternShot X=300 Y=-450 SHOT=CrossGreen
$MapPatternShot X=300 Y=-400 SHOT=CrossBlue
$MapPatternShot X=300 Y=-350 SHOT=CrossGreen
$MapPatternShot X=300 Y=-300 SHOT=CrossBlue
$MapPatternShot X=300 Y=-250 SHOT=CrossGreen
$MapPatternShot X=300 Y=-200 SHOT=CrossBlue
$MapPatternShot X=300 Y=-150 SHOT=CrossGreen
$MapPatternShot X=300 Y=-100 SHOT=CrossBlue
$MapPatternShot X=300 Y=-50 SHOT=CrossGreen
$MapPatternShot X=300 Y=0 SHOT=CrossBlue
$MapPatternShot X=300 Y=50 SHOT=CrossGreen
$MapPatternShot X=300 Y=100 SHOT=CrossBlue
$MapPatternShot X=300 Y=150 SHOT=CrossGreen
$MapPatternShot X=300 Y=200 SHOT=CrossBlue
$MapPatternShot X=300 Y=250 SHOT=CrossGreen
$MapPatternShot X=300 Y=300 SHOT=CrossBlue
$MapPatternShot X=300 Y=350 SHOT=CrossGreen
$MapPatternShot X=300 Y=400 SHOT=CrossBlue
$MapPatternShot X=300 Y=450 SHOT=CrossGreen
$MapPatternShot X=300 Y=500 SHOT=CrossBlue
$MapPatternShot X=300 Y=550 SHOT=CrossGreen
$MapPatternShot X=300 Y=600 SHOT=CrossBlue
$MapPatternShot X=300 Y=650 SHOT=CrossGreen
$MapPatternShot X=300 Y=700 SHOT=CrossBlue
$MapPatternShot X=300 Y=750 SHOT=CrossGreen
$MapPatternShot X=300 Y=800 SHOT=CrossBlue
$MapPatternShot X=300 Y=850 SHOT=CrossGreen
$MapPatternShot X=300 Y=900 SHOT=CrossBlue
$MapPatternShot X=300 Y=950 SHOT=CrossGreen
$MapPatternShot X=300 Y=1000 SHOT=CrossBlue
$MapPatternShot X=350 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=350 Y=-950 SHOT=CrossGreen
$MapPatternShot X=350 Y=-900 SHOT=CrossBlue
$MapPatternShot X=350 Y=-850 SHOT=CrossGreen
$MapPatternShot X=350 Y=-800 SHOT=CrossBlue
$MapPatternShot X=350 Y=-750 SHOT=CrossGreen
$MapPatternShot X=350 Y=-700 SHOT=CrossBlue
$MapPatternShot X=350 Y=-650 SHOT=CrossGreen
$MapPatternShot X=350 Y=-600 SHOT=CrossBlue
$MapPatternShot X=350 Y=-550 SHOT=CrossGreen
$MapPatternShot X=350 Y=-500 SHOT=CrossBlue
$MapPatternShot X=350 Y=-450 SHOT=CrossGreen
$MapPatternShot X=350 Y=-400 SHOT=CrossBlue
$MapPatternShot X=350 Y=-350 SHOT=CrossGreen
$MapPatternShot X=350 Y=-300 SHOT=CrossBlue
$MapPatternShot X=350 Y=-250 SHOT=CrossGreen
$MapPatternShot X=350 Y=-200 SHOT=CrossBlue
$MapPatternShot X=350 Y=-150 SHOT=CrossGreen
$MapPatternShot X=350 Y=-100 SHOT=CrossBlue
$MapPatternShot X=350 Y=-50 SHOT=CrossGreen
$MapPatternShot X=350 Y=0 SHOT=CrossBlue
$MapPatternShot X=350 Y=50 SHOT=CrossGreen
$MapPatternShot X=350 Y=100 SHOT=CrossBlue
$MapPatternShot X=350 Y=150 SHOT=CrossGreen
$MapPatternShot X=350 Y=200 SHOT=CrossBlue
$MapPatternShot X=350 Y=250 SHOT=CrossGreen
$MapPatternShot X=350 Y=300 SHOT=CrossBlue
$MapPatternShot X=350 Y=350 SHOT=CrossGreen
$MapPatternShot X=350 Y=400 SHOT=CrossBlue
$MapPatternShot X=350 Y=450 SHOT=CrossGreen
$MapPatternShot X=350 Y=500 SHOT=CrossBlue
$MapPatternShot X=350 Y=550 SHOT=CrossGreen
$MapPatternShot X=350 Y=600 SHOT=CrossBlue
$MapPatternShot X=350 Y=650 SHOT=CrossGreen
$MapPatternShot X=350 Y=700 SHOT=CrossBlue
$MapPatternShot X=350 Y=750 SHOT=CrossGreen
$MapPatternShot X=350 Y=800 SHOT=CrossBlue
$MapPatternShot X=350 Y=850 SHOT=CrossGreen
$MapPatternShot X=350 Y=900 SHOT=CrossBlue
$MapPatternShot X=350 Y=950 SHOT=CrossGreen
$MapPatternShot X=350 Y=1000 SHOT=CrossBlue
$MapPatternShot X=400 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=400 Y=-950 SHOT=CrossGreen
$MapPatternShot X=400 Y=-900 SHOT=CrossBlue
$MapPatternShot X=400 Y=-850 SHOT=CrossGreen
$MapPatternShot X=400 Y=-800 SHOT=CrossBlue
$MapPatternShot X=400 Y=-750 SHOT=CrossGreen
$MapPatternShot X=400 Y=-700 SHOT=CrossBlue
$MapPatternShot X=400 Y=-650 SHOT=CrossGreen
$MapPatternShot X=400 Y=-600 SHOT=CrossBlue
$MapPatternShot X=400 Y=-550 SHOT=CrossGreen
$MapPatternShot X=400 Y=-500 SHOT=CrossBlue
$MapPatternShot X=400 Y=-450 SHOT=CrossGreen
$MapPatternShot X=400 Y=-400 SHOT=CrossBlue
$MapPatternShot X=400 Y=-350 SHOT=CrossGreen
$MapPatternShot X=400 Y=-300 SHOT=CrossBlue
$MapPatternShot X=400 Y=-250 SHOT=CrossGreen
$MapPatternShot X=400 Y=-200 SHOT=CrossBlue
$MapPatternShot X=400 Y=-150 SHOT=CrossGreen
$MapPatternShot X=400 Y=-100 SHOT=CrossBlue
$MapPatternShot X=400 Y=-50 SHOT=CrossGreen
$MapPatternShot X=400 Y=0 SHOT=CrossBlue
$MapPatternShot X=400 Y=50 SHOT=CrossGreen
$MapPatternShot X=400 Y=100 SHOT=CrossBlue
$MapPatternShot X=400 Y=150 SHOT=CrossGreen
$MapPatternShot X=400 Y=200 SHOT=CrossBlue
$MapPatternShot X=400 Y=250 SHOT=CrossGreen
$MapPatternShot X=400 Y=300 SHOT=CrossBlue
$MapPatternShot X=400 Y=350 SHOT=CrossGreen
$MapPatternShot X=400 Y=400 SHOT=CrossBlue
$MapPatternShot X=400 Y=450 SHOT=CrossGreen
$MapPatternShot X=400 Y=500 SHOT=CrossBlue
$MapPatternShot X=400 Y=550 SHOT=CrossGreen
$MapPatternShot X=400 Y=600 SHOT=CrossBlue
$MapPatternShot X=400 Y=650 SHOT=CrossGreen
$MapPatternShot X=400 Y=700 SHOT=CrossBlue
$MapPatternShot X=400 Y=750 SHOT=CrossGreen
$MapPatternShot X=400 Y=800 SHOT=CrossBlue
$MapPatternShot X=400 Y=850 SHOT=CrossGreen
$MapPatternShot X=400 Y=900 SHOT=CrossBlue
$MapPatternShot X=400 Y=950 SHOT=CrossGreen
$MapPatternShot X=400 Y=1000 SHOT=CrossBlue
$MapPatternShot X=450 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=450 Y=-950 SHOT=CrossGreen
$MapPatternShot X=450 Y=-900 SHOT=CrossBlue
$MapPatternShot X=450 Y=-850 SHOT=CrossGreen
$MapPatternShot X=450 Y=-800 SHOT=CrossBlue
$MapPatternShot X=450 Y=-750 SHOT=CrossGreen
$MapPatternShot X=450 Y=-700 SHOT=CrossBlue
$MapPatternShot X=450 Y=-650 SHOT=CrossGreen
$MapPatternShot X=450 Y=-600 SHOT=CrossBlue
$MapPatternShot X=450 Y=-550 SHOT=CrossGreen
$MapPatternShot X=450 Y=-500 SHOT=CrossBlue
$MapPatternShot X=450 Y=-450 SHOT=CrossGreen
$MapPatternShot X=450 Y=-400 SHOT=CrossBlue
$MapPatternShot X=450 Y=-350 SHOT=CrossGreen
$MapPatternShot X=450 Y=-300 SHOT=CrossBlue
$MapPatternShot X=450 Y=-250 SHOT=CrossGreen
$MapPatternShot X=450 Y=-200 SHOT=CrossBlue
$MapPatternShot X=450 Y=-150 SHOT=CrossGreen
$MapPatternShot X=450 Y=-100 SHOT=CrossBlue
$MapPatternShot X=450 Y=-50 SHOT=CrossGreen
$MapPatternShot X=450 Y=0 SHOT=CrossBlue
$MapPatternShot X=450 Y=50 SHOT=CrossGreen
$MapPatternShot X=450 Y=100 SHOT=CrossBlue
$MapPatternShot X=450 Y=150 SHOT=CrossGreen
$MapPatternShot X=450 Y=200 SHOT=CrossBlue
$MapPatternShot X=450 Y=250 SHOT=CrossGreen
$MapPatternShot X=450 Y=300 SHOT=CrossBlue
$MapPatternShot X=450 Y=350 SHOT=CrossGreen
$MapPatternShot X=450 Y=400 SHOT=CrossBlue
$MapPatternShot X=450 Y=450 SHOT=CrossGreen
$MapPatternShot X=450 Y=500 SHOT=CrossBlue
$MapPatternShot X=450 Y=550 SHOT=CrossGreen
$MapPatternShot X=450 Y=600 SHOT=CrossBlue
$MapPatternShot X=450 Y=650 SHOT=CrossGreen
$MapPatternShot X=450 Y=700 SHOT=CrossBlue
$MapPatternShot X=450 Y=750 SHOT=CrossGreen
$MapPatternShot X=450 Y=800 SHOT=CrossBlue
$MapPatternShot X=450 Y=850 SHOT=CrossGreen
$MapPatternShot X=450 Y=900 SHOT=CrossBlue
$MapPatternShot X=450 Y=950 SHOT=CrossGreen
$MapPatternShot X=450 Y=1000 SHOT=CrossBlue
$MapPatternShot X=500 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=500 Y=-950 SHOT=CrossGreen
$MapPatternShot X=500 Y=-900 SHOT=CrossBlue
$MapPatternShot X=500 Y=-850 SHOT=CrossGreen
$MapPatternShot X=500 Y=-800 SHOT=CrossBlue
$MapPatternShot X=500 Y=-750 SHOT=CrossGreen
$MapPatternShot X=500 Y=-700 SHOT=CrossBlue
$MapPatternShot X=500 Y=-650 SHOT=CrossGreen
$MapPatternShot X=500 Y=-600 SHOT=CrossBlue
$MapPatternShot X=500 Y=-550 SHOT=CrossGreen
$MapPatternShot X=500 Y=-500 SHOT=CrossBlue
$MapPatternShot X=500 Y=-450 SHOT=CrossGreen
$MapPatternShot X=500 Y=-400 SHOT=CrossBlue
$MapPatternShot X=500 Y=-350 SHOT=CrossGreen
$MapPatternShot X=500 Y=-300 SHOT=CrossBlue
$MapPatternShot X=500 Y=-250 SHOT=CrossGreen
$MapPatternShot X=500 Y=-200 SHOT=CrossBlue
$MapPatternShot X=500 Y=-150 SHOT=CrossGreen
$MapPatternShot X=500 Y=-100 SHOT=CrossBlue
$MapPatternShot X=500 Y=-50 SHOT=CrossGreen
$MapPatternShot X=500 Y=0 SHOT=CrossBlue
$MapPatternShot X=500 Y=50 SHOT=CrossGreen
$MapPatternShot X=500 Y=100 SHOT=CrossBlue
$MapPatternShot X=500 Y=150 SHOT=CrossGreen
$MapPatternShot X=500 Y=200 SHOT=CrossBlue
$MapPatternShot X=500 Y=250 SHOT=CrossGreen
$MapPatternShot X=500 Y=300 SHOT=CrossBlue
$MapPatternShot X=500 Y=350 SHOT=CrossGreen
$MapPatternShot X=500 Y=400 SHOT=CrossBlue
$MapPatternShot X=500 Y=450 SHOT=CrossGreen
$MapPatternShot X=500 Y=500 SHOT=CrossBlue
$MapPatternShot X=500 Y=550 SHOT=CrossGreen
$MapPatternShot X=500 Y=600 SHOT=CrossBlue
$MapPatternShot X=500 Y=650 SHOT=CrossGreen
$MapPatternShot X=500 Y=700 SHOT=CrossBlue
$MapPatternShot X=500 Y=750 SHOT=CrossGreen
$MapPatternShot X=500 Y=800 SHOT=CrossBlue
$MapPatternShot X=500 Y=850 SHOT=CrossGreen
$MapPatternShot X=500 Y=900 SHOT=CrossBlue
$MapPatternShot X=500 Y=950 SHOT=CrossGreen
$MapPatternShot X=500 Y=1000 SHOT=CrossBlue
$MapPatternShot X=550 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=550 Y=-950 SHOT=CrossGreen
$MapPatternShot X=550 Y=-900 SHOT=CrossBlue
$MapPatternShot X=550 Y=-850 SHOT=CrossGreen
$MapPatternShot X=550 Y=-800 SHOT=CrossBlue
$MapPatternShot X=550 Y=-750 SHOT=CrossGreen
$MapPatternShot X=550 Y=-700 SHOT=CrossBlue
$MapPatternShot X=550 Y=-650 SHOT=CrossGreen
$MapPatternShot X=550 Y=-600 SHOT=CrossBlue
$MapPatternShot X=550 Y=-550 SHOT=CrossGreen
$MapPatternShot X=550 Y=-500 SHOT=CrossBlue
$MapPatternShot X=550 Y=-450 SHOT=CrossGreen
$MapPatternShot X=550 Y=-400 SHOT=CrossBlue
$MapPatternShot X=550 Y=-350 SHOT=CrossGreen
$MapPatternShot X=550 Y=-300 SHOT=CrossBlue
$MapPatternShot X=550 Y=-250 SHOT=CrossGreen
$MapPatternShot X=550 Y=-200 SHOT=CrossBlue
$MapPatternShot X=550 Y=-150 SHOT=CrossGreen
$MapPatternShot X=550 Y=-100 SHOT=CrossBlue
$MapPatternShot X=550 Y=-50 SHOT=CrossGreen
$MapPatternShot X=550 Y=0 SHOT=CrossBlue
$MapPatternShot X=550 Y=50 SHOT=CrossGreen
$MapPatternShot X=550 Y=100 SHOT=CrossBlue
$MapPatternShot X=550 Y=150 SHOT=CrossGreen
$MapPatternShot X=550 Y=200 SHOT=CrossBlue
$MapPatternShot X=550 Y=250 SHOT=CrossGreen
$MapPatternShot X=550 Y=300 SHOT=CrossBlue
$MapPatternShot X=550 Y=350 SHOT=CrossGreen
$MapPatternShot X=550 Y=400 SHOT=CrossBlue
$MapPatternShot X=550 Y=450 SHOT=CrossGreen
$MapPatternShot X=550 Y=500 SHOT=CrossBlue
$MapPatternShot X=550 Y=550 SHOT=CrossGreen
$MapPatternShot X=550 Y=600 SHOT=CrossBlue
$MapPatternShot X=550 Y=650 SHOT=CrossGreen
$MapPatternShot X=550 Y=700 SHOT=CrossBlue
$MapPatternShot X=550 Y=750 SHOT=CrossGreen
$MapPatternShot X=550 Y=800 SHOT=CrossBlue
$MapPatternShot X=550 Y=850 SHOT=CrossGreen
$MapPatternShot X=550 Y=900 SHOT=CrossBlue
$MapPatternShot X=550 Y=950 SHOT=CrossGreen
$MapPatternShot X=550 Y=1000 SHOT=CrossBlue
$MapPatternShot X=600 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=600 Y=-950 SHOT=CrossGreen
$MapPatternShot X=600 Y=-900 SHOT=CrossBlue
$MapPatternShot X=600 Y=-850 SHOT=CrossGreen
$MapPatternShot X=600 Y=-800 SHOT=CrossBlue
$MapPatternShot X=600 Y=-750 SHOT=CrossGreen
$MapPatternShot X=600 Y=-700 SHOT=CrossBlue
$MapPatternShot X=600 Y=-650 SHOT=CrossGreen
$MapPatternShot X=600 Y=-600 SHOT=CrossBlue
$MapPatternShot X=600 Y=-550 SHOT=CrossGreen
$MapPatternShot X=600 Y=-500 SHOT=CrossBlue
$MapPatternShot X=600 Y=-450 SHOT=CrossGreen
$MapPatternShot X=600 Y=-400 SHOT=CrossBlue
$MapPatternShot X=600 Y=-350 SHOT=CrossGreen
$MapPatternShot X=600 Y=-300 SHOT=CrossBlue
$MapPatternShot X=600 Y=-250 SHOT=CrossGreen
$MapPatternShot X=600 Y=-200 SHOT=CrossBlue
$MapPatternShot X=600 Y=-150 SHOT=CrossGreen
$MapPatternShot X=600 Y=-100 SHOT=CrossBlue
$MapPatternShot X=600 Y=-50 SHOT=CrossGreen
$MapPatternShot X=600 Y=0 SHOT=CrossBlue
$MapPatternShot X=600 Y=50 SHOT=CrossGreen
$MapPatternShot X=600 Y=100 SHOT=CrossBlue
$MapPatternShot X=600 Y=150 SHOT=CrossGreen
$MapPatternShot X=600 Y=200 SHOT=CrossBlue
$MapPatternShot X=600 Y=250 SHOT=CrossGreen
$MapPatternShot X=600 Y=300 SHOT=CrossBlue
$MapPatternShot X=600 Y=350 SHOT=CrossGreen
$MapPatternShot X=600 Y=400 SHOT=CrossBlue
$MapPatternShot X=600 Y=450 SHOT=CrossGreen
$MapPatternShot X=600 Y=500 SHOT=CrossBlue
$MapPatternShot X=600 Y=550 SHOT=CrossGreen
$MapPatternShot X=600 Y=600 SHOT=CrossBlue
$MapPatternShot X=600 Y=650 SHOT=CrossGreen
$MapPatternShot X=600 Y=700 SHOT=CrossBlue
$MapPatternShot X=600 Y=750 SHOT=CrossGreen
$MapPatternShot X=600 Y=800 SHOT=CrossBlue
$MapPatternShot X=600 Y=850 SHOT=CrossGreen
$MapPatternShot X=600 Y=900 SHOT=CrossBlue
$MapPatternShot X=600 Y=950 SHOT=CrossGreen
$MapPatternShot X=600 Y=1000 SHOT=CrossBlue
$MapPatternShot X=650 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=650 Y=-950 SHOT=CrossGreen
$MapPatternShot X=650 Y=-900 SHOT=CrossBlue
$MapPatternShot X=650 Y=-850 SHOT=CrossGreen
$MapPatternShot X=650 Y=-800 SHOT=CrossBlue
$MapPatternShot X=650 Y=-750 SHOT=CrossGreen
$MapPatternShot X=650 Y=-700 SHOT=CrossBlue
$MapPatternShot X=650 Y=-650 SHOT=CrossGreen
$MapPatternShot X=650 Y=-600 SHOT=CrossBlue
$MapPatternShot X=650 Y=-550 SHOT=CrossGreen
$MapPatternShot X=650 Y=-500 SHOT=CrossBlue
$MapPatternShot X=650 Y=-450 SHOT=CrossGreen
$MapPatternShot X=650 Y=-400 SHOT=CrossBlue
$MapPatternShot X=650 Y=-350 SHOT=CrossGreen
$MapPatternShot X=650 Y=-300 SHOT=CrossBlue
$MapPatternShot X=650 Y=-250 SHOT=CrossGreen
$MapPatternShot X=650 Y=-200 SHOT=CrossBlue
$MapPatternShot X=650 Y=-150 SHOT=CrossGreen
$MapPatternShot X=650 Y=-100 SHOT=CrossBlue
$MapPatternShot X=650 Y=-50 SHOT=CrossGreen
$MapPatternShot X=650 Y=0 SHOT=CrossBlue
$MapPatternShot X=650 Y=50 SHOT=CrossGreen
$MapPatternShot X=650 Y=100 SHOT=CrossBlue
$MapPatternShot X=650 Y=150 SHOT=CrossGreen
$MapPatternShot X=650 Y=200 SHOT=CrossBlue
$MapPatternShot X=650 Y=250 SHOT=CrossGreen
$MapPatternShot X=650 Y=300 SHOT=CrossBlue
$MapPatternShot X=650 Y=350 SHOT=CrossGreen
$MapPatternShot X=650 Y=400 SHOT=CrossBlue
$MapPatternShot X=650 Y=450 SHOT=CrossGreen
$MapPatternShot X=650 Y=500 SHOT=CrossBlue
$MapPatternShot X=650 Y=550 SHOT=CrossGreen
$MapPatternShot X=650 Y=600 SHOT=CrossBlue
$MapPatternShot X=650 Y=650 SHOT=CrossGreen
$MapPatternShot X=650 Y=700 SHOT=CrossBlue
$MapPatternShot X=650 Y=750 SHOT=CrossGreen
$MapPatternShot X=650 Y=800 SHOT=CrossBlue
$MapPatternShot X=650 Y=850 SHOT=CrossGreen
$MapPatternShot X=650 Y=900 SHOT=CrossBlue
$MapPatternShot X=650 Y=950 SHOT=CrossGreen
$MapPatternShot X=650 Y=1000 SHOT=CrossBlue
$MapPatternShot X=700 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=700 Y=-950 SHOT=CrossGreen
$MapPatternShot X=700 Y=-900 SHOT=CrossBlue
$MapPatternShot X=700 Y=-850 SHOT=CrossGreen
$MapPatternShot X=700 Y=-800 SHOT=CrossBlue
$MapPatternShot X=700 Y=-750 SHOT=CrossGreen
$MapPatternShot X=700 Y=-700 SHOT=CrossBlue
$MapPatternShot X=700 Y=-650 SHOT=CrossGreen
$MapPatternShot X=700 Y=-600 SHOT=CrossBlue
$MapPatternShot X=700 Y=-550 SHOT=CrossGreen
$MapPatternShot X=700 Y=-500 SHOT=CrossBlue
$MapPatternShot X=700 Y=-450 SHOT=CrossGreen
$MapPatternShot X=700 Y=-400 SHOT=CrossBlue
$MapPatternShot X=700 Y=-350 SHOT=CrossGreen
$MapPatternShot X=700 Y=-300 SHOT=CrossBlue
$MapPatternShot X=700 Y=-250 SHOT=CrossGreen
$MapPatternShot X=700 Y=-200 SHOT=CrossBlue
$MapPatternShot X=700 Y=-150 SHOT=CrossGreen
$MapPatternShot X=700 Y=-100 SHOT=CrossBlue
$MapPatternShot X=700 Y=-50 SHOT=CrossGreen
$MapPatternShot X=700 Y=0 SHOT=CrossBlue
$MapPatternShot X=700 Y=50 SHOT=CrossGreen
$MapPatternShot X=700 Y=100 SHOT=CrossBlue
$MapPatternShot X=700 Y=150 SHOT=CrossGreen
$MapPatternShot X=700 Y=200 SHOT=CrossBlue
$MapPatternShot X=700 Y=250 SHOT=CrossGreen
$MapPatternShot X=700 Y=300 SHOT=CrossBlue
$MapPatternShot X=700 Y=350 SHOT=CrossGreen
$MapPatternShot X=700 Y=400 SHOT=CrossBlue
$MapPatternShot X=700 Y=450 SHOT=CrossGreen
$MapPatternShot X=700 Y=500 SHOT=CrossBlue
$MapPatternShot X=700 Y=550 SHOT=CrossGreen
$MapPatternShot X=700 Y=600 SHOT=CrossBlue
$MapPatternShot X=700 Y=650 SHOT=CrossGreen
$MapPatternShot X=700 Y=700 SHOT=CrossBlue
$MapPatternShot X=700 Y=750 SHOT=CrossGreen
$MapPatternShot X=700 Y=800 SHOT=CrossBlue
$MapPatternShot X=700 Y=850 SHOT=CrossGreen
$MapPatternShot X=700 Y=900 SHOT=CrossBlue
$MapPatternShot X=700 Y=950 SHOT=CrossGreen
$MapPatternShot X=700 Y=1000 SHOT=CrossBlue
$MapPatternShot X=750 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=750 Y=-950 SHOT=CrossGreen
$MapPatternShot X=750 Y=-900 SHOT=CrossBlue
$MapPatternShot X=750 Y=-850 SHOT=CrossGreen
$MapPatternShot X=750 Y=-800 SHOT=CrossBlue
$MapPatternShot X=750 Y=-750 SHOT=CrossGreen
$MapPatternShot X=750 Y=-700 SHOT=CrossBlue
$MapPatternShot X=750 Y=-650 SHOT=CrossGreen
$MapPatternShot X=750 Y=-600 SHOT=CrossBlue
$MapPatternShot X=750 Y=-550 SHOT=CrossGreen
$MapPatternShot X=750 Y=-500 SHOT=CrossBlue
$MapPatternShot X=750 Y=-450 SHOT=CrossGreen
$MapPatternShot X=750 Y=-400 SHOT=CrossBlue
$MapPatternShot X=750 Y=-350 SHOT=CrossGreen
$MapPatternShot X=750 Y=-300 SHOT=CrossBlue
$MapPatternShot X=750 Y=-250 SHOT=CrossGreen
$MapPatternShot X=750 Y=-200 SHOT=CrossBlue
$MapPatternShot X=750 Y=-150 SHOT=CrossGreen
$MapPatternShot X=750 Y=-100 SHOT=CrossBlue
$MapPatternShot X=750 Y=-50 SHOT=CrossGreen
$MapPatternShot X=750 Y=0 SHOT=CrossBlue
$MapPatternShot X=750 Y=50 SHOT=CrossGreen
$MapPatternShot X=750 Y=100 SHOT=CrossBlue
$MapPatternShot X=750 Y=150 SHOT=CrossGreen
$MapPatternShot X=750 Y=200 SHOT=CrossBlue
$MapPatternShot X=750 Y=250 SHOT=CrossGreen
$MapPatternShot X=750 Y=300 SHOT=CrossBlue
$MapPatternShot X=750 Y=350 SHOT=CrossGreen
$MapPatternShot X=750 Y=400 SHOT=CrossBlue
$MapPatternShot X=750 Y=450 SHOT=CrossGreen
$MapPatternShot X=750 Y=500 SHOT=CrossBlue
$MapPatternShot X=750 Y=550 SHOT=CrossGreen
$MapPatternShot X=750 Y=600 SHOT=CrossBlue
$MapPatternShot X=750 Y=650 SHOT=CrossGreen
$MapPatternShot X=750 Y=700 SHOT=CrossBlue
$MapPatternShot X=750 Y=750 SHOT=CrossGreen
$MapPatternShot X=750 Y=800 SHOT=CrossBlue
$MapPatternShot X=750 Y=850 SHOT=CrossGreen
$MapPatternShot X=750 Y=900 SHOT=CrossBlue
$MapPatternShot X=750 Y=950 SHOT=CrossGreen
$MapPatternShot X=750 Y=1000 SHOT=CrossBlue
$MapPatternShot X=800 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=800 Y=-950 SHOT=CrossGreen
$MapPatternShot X=800 Y=-900 SHOT=CrossBlue
$MapPatternShot X=800 Y=-850 SHOT=CrossGreen
$MapPatternShot X=800 Y=-800 SHOT=CrossBlue
$MapPatternShot X=800 Y=-750 SHOT=CrossGreen
$MapPatternShot X=800 Y=-700 SHOT=CrossBlue
$MapPatternShot X=800 Y=-650 SHOT=CrossGreen
$MapPatternShot X=800 Y=-600 SHOT=CrossBlue
$MapPatternShot X=800 Y=-550 SHOT=CrossGreen
$MapPatternShot X=800 Y=-500 SHOT=CrossBlue
$MapPatternShot X=800 Y=-450 SHOT=CrossGreen
$MapPatternShot X=800 Y=-400 SHOT=CrossBlue
$MapPatternShot X=800 Y=-350 SHOT=CrossGreen
$MapPatternShot X=800 Y=-300 SHOT=CrossBlue
$MapPatternShot X=800 Y=-250 SHOT=CrossGreen
$MapPatternShot X=800 Y=-200 SHOT=CrossBlue
$MapPatternShot X=800 Y=-150 SHOT=CrossGreen
$MapPatternShot X=800 Y=-100 SHOT=CrossBlue
$MapPatternShot X=800 Y=-50 SHOT=CrossGreen
$MapPatternShot X=800 Y=0 SHOT=CrossBlue
$MapPatternShot X=800 Y=50 SHOT=CrossGreen
$MapPatternShot X=800 Y=100 SHOT=CrossBlue
$MapPatternShot X=800 Y=150 SHOT=CrossGreen
$MapPatternShot X=800 Y=200 SHOT=CrossBlue
$MapPatternShot X=800 Y=250 SHOT=CrossGreen
$MapPatternShot X=800 Y=300 SHOT=CrossBlue
$MapPatternShot X=800 Y=350 SHOT=CrossGreen
$MapPatternShot X=800 Y=400 SHOT=CrossBlue
$MapPatternShot X=800 Y=450 SHOT=CrossGreen
$MapPatternShot X=800 Y=500 SHOT=CrossBlue
$MapPatternShot X=800 Y=550 SHOT=CrossGreen
$MapPatternShot X=800 Y=600 SHOT=CrossBlue
$MapPatternShot X=800 Y=650 SHOT=CrossGreen
$MapPatternShot X=800 Y=700 SHOT=CrossBlue
$MapPatternShot X=800 Y=750 SHOT=CrossGreen
$MapPatternShot X=800 Y=800 SHOT=CrossBlue
$MapPatternShot X=800 Y=850 SHOT=CrossGreen
$MapPatternShot X=800 Y=900 SHOT=CrossBlue
$MapPatternShot X=800 Y=950 SHOT=CrossGreen
$MapPatternShot X=800 Y=1000 SHOT=CrossBlue
$MapPatternShot X=850 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=850 Y=-950 SHOT=CrossGreen
$MapPatternShot X=850 Y=-900 SHOT=CrossBlue
$MapPatternShot X=850 Y=-850 SHOT=CrossGreen
$MapPatternShot X=850 Y=-800 SHOT=CrossBlue
$MapPatternShot X=850 Y=-750 SHOT=CrossGreen
$MapPatternShot X=850 Y=-700 SHOT=CrossBlue
$MapPatternShot X=850 Y=-650 SHOT=CrossGreen
$MapPatternShot X=850 Y=-600 SHOT=CrossBlue
$MapPatternShot X=850 Y=-550 SHOT=CrossGreen
$MapPatternShot X=850 Y=-500 SHOT=CrossBlue
$MapPatternShot X=850 Y=-450 SHOT=CrossGreen
$MapPatternShot X=850 Y=-400 SHOT=CrossBlue
$MapPatternShot X=850 Y=-350 SHOT=CrossGreen
$MapPatternShot X=850 Y=-300 SHOT=CrossBlue
$MapPatternShot X=850 Y=-250 SHOT=CrossGreen
$MapPatternShot X=850 Y=-200 SHOT=CrossBlue
$MapPatternShot X=850 Y=-150 SHOT=CrossGreen
$MapPatternShot X=850 Y=-100 SHOT=CrossBlue
$MapPatternShot X=850 Y=-50 SHOT=CrossGreen
$MapPatternShot X=850 Y=0 SHOT=CrossBlue
$MapPatternShot X=850 Y=50 SHOT=CrossGreen
$MapPatternShot X=850 Y=100 SHOT=CrossBlue
$MapPatternShot X=850 Y=150 SHOT=CrossGreen
$MapPatternShot X=850 Y=200 SHOT=CrossBlue
$MapPatternShot X=850 Y=250 SHOT=CrossGreen
$MapPatternShot X=850 Y=300 SHOT=CrossBlue
$MapPatternShot X=850 Y=350 SHOT=CrossGreen
$MapPatternShot X=850 Y=400 SHOT=CrossBlue
$MapPatternShot X=850 Y=450 SHOT=CrossGreen
$MapPatternShot X=850 Y=500 SHOT=CrossBlue
$MapPatternShot X=850 Y=550 SHOT=CrossGreen
$MapPatternShot X=850 Y=600 SHOT=CrossBlue
$MapPatternShot X=850 Y=650 SHOT=CrossGreen
$MapPatternShot X=850 Y=700 SHOT=CrossBlue
$MapPatternShot X=850 Y=750 SHOT=CrossGreen
$MapPatternShot X=850 Y=800 SHOT=CrossBlue
$MapPatternShot X=850 Y=850 SHOT=CrossGreen
$MapPatternShot X=850 Y=900 SHOT=CrossBlue
$MapPatternShot X=850 Y=950 SHOT=CrossGreen
$MapPatternShot X=850 Y=1000 SHOT=CrossBlue
$MapPatternShot X=900 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=900 Y=-950 SHOT=CrossGreen
$MapPatternShot X=900 Y=-900 SHOT=CrossBlue
$MapPatternShot X=900 Y=-850 SHOT=CrossGreen
$MapPatternShot X=900 Y=-800 SHOT=CrossBlue
$MapPatternShot X=900 Y=-750 SHOT=CrossGreen
$MapPatternShot X=900 Y=-700 SHOT=CrossBlue
$MapPatternShot X=900 Y=-650 SHOT=CrossGreen
$MapPatternShot X=900 Y=-600 SHOT=CrossBlue
$MapPatternShot X=900 Y=-550 SHOT=CrossGreen
$MapPatternShot X=900 Y=-500 SHOT=CrossBlue
$MapPatternShot X=900 Y=-450 SHOT=CrossGreen
$MapPatternShot X=900 Y=-400 SHOT=CrossBlue
$MapPatternShot X=900 Y=-350 SHOT=CrossGreen
$MapPatternShot X=900 Y=-300 SHOT=CrossBlue
$MapPatternShot X=900 Y=-250 SHOT=CrossGreen
$MapPatternShot X=900 Y=-200 SHOT=CrossBlue
$MapPatternShot X=900 Y=-150 SHOT=CrossGreen
$MapPatternShot X=900 Y=-100 SHOT=CrossBlue
$MapPatternShot X=900 Y=-50 SHOT=CrossGreen
$MapPatternShot X=900 Y=0 SHOT=CrossBlue
$MapPatternShot X=900 Y=50 SHOT=CrossGreen
$MapPatternShot X=900 Y=100 SHOT=CrossBlue
$MapPatternShot X=900 Y=150 SHOT=CrossGreen
$MapPatternShot X=900 Y=200 SHOT=CrossBlue
$MapPatternShot X=900 Y=250 SHOT=CrossGreen
$MapPatternShot X=900 Y=300 SHOT=CrossBlue
$MapPatternShot X=900 Y=350 SHOT=CrossGreen
$MapPatternShot X=900 Y=400 SHOT=CrossBlue
$MapPatternShot X=900 Y=450 SHOT=CrossGreen
$MapPatternShot X=900 Y=500 SHOT=CrossBlue
$MapPatternShot X=900 Y=550 SHOT=CrossGreen
$MapPatternShot X=900 Y=600 SHOT=CrossBlue
$MapPatternShot X=900 Y=650 SHOT=CrossGreen
$MapPatternShot X=900 Y=700 SHOT=CrossBlue
$MapPatternShot X=900 Y=750 SHOT=CrossGreen
$MapPatternShot X=900 Y=800 SHOT=CrossBlue
$MapPatternShot X=900 Y=850 SHOT=CrossGreen
$MapPatternShot X=900 Y=900 SHOT=CrossBlue
$MapPatternShot X=900 Y=950 SHOT=CrossGreen
$MapPatternShot X=900 Y=1000 SHOT=CrossBlue
$MapPatternShot X=950 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=950 Y=-950 SHOT=CrossGreen
$MapPatternShot X=950 Y=-900 SHOT=CrossBlue
$MapPatternShot X=950 Y=-850 SHOT=CrossGreen
$MapPatternShot X=950 Y=-800 SHOT=CrossBlue
$MapPatternShot X=950 Y=-750 SHOT=CrossGreen
$MapPatternShot X=950 Y=-700 SHOT=CrossBlue
$MapPatternShot X=950 Y=-650 SHOT=CrossGreen
$MapPatternShot X=950 Y=-600 SHOT=CrossBlue
$MapPatternShot X=950 Y=-550 SHOT=CrossGreen
$MapPatternShot X=950 Y=-500 SHOT=CrossBlue
$MapPatternShot X=950 Y=-450 SHOT=CrossGreen
$MapPatternShot X=950 Y=-400 SHOT=CrossBlue
$MapPatternShot X=950 Y=-350 SHOT=CrossGreen
$MapPatternShot X=950 Y=-300 SHOT=CrossBlue
$MapPatternShot X=950 Y=-250 SHOT=CrossGreen
$MapPatternShot X=950 Y=-200 SHOT=CrossBlue
$MapPatternShot X=950 Y=-150 SHOT=CrossGreen
$MapPatternShot X=950 Y=-100 SHOT=CrossBlue
$MapPatternShot X=950 Y=-50 SHOT=CrossGreen
$MapPatternShot X=950 Y=0 SHOT=CrossBlue
$MapPatternShot X=950 Y=50 SHOT=CrossGreen
$MapPatternShot X=950 Y=100 SHOT=CrossBlue
$MapPatternShot X=950 Y=150 SHOT=CrossGreen
$MapPatternShot X=950 Y=200 SHOT=CrossBlue
$MapPatternShot X=950 Y=250 SHOT=CrossGreen
$MapPatternShot X=950 Y=300 SHOT=CrossBlue
$MapPatternShot X=950 Y=350 SHOT=CrossGreen
$MapPatternShot X=950 Y=400 SHOT=CrossBlue
$MapPatternShot X=950 Y=450 SHOT=CrossGreen
$MapPatternShot X=950 Y=500 SHOT=CrossBlue
$MapPatternShot X=950 Y=550 SHOT=CrossGreen
$MapPatternShot X=950 Y=600 SHOT=CrossBlue
$MapPatternShot X=950 Y=650 SHOT=CrossGreen
$MapPatternShot X=950 Y=700 SHOT=CrossBlue
$MapPatternShot X=950 Y=750 SHOT=CrossGreen
$MapPatternShot X=950 Y=800 SHOT=CrossBlue
$MapPatternShot X=950 Y=850 SHOT=CrossGreen
$MapPatternShot X=950 Y=900 SHOT=CrossBlue
$MapPatternShot X=950 Y=950 SHOT=CrossGreen
$MapPatternShot X=950 Y=1000 SHOT=CrossBlue
$MapPatternShot X=1000 Y=-1000 SHOT=CrossBlue
$MapPatternShot X=1000 Y=-950 SHOT=CrossGreen
$MapPatternShot X=1000 Y=-900 SHOT=CrossBlue
$MapPatternShot X=1000 Y=-850 SHOT=CrossGreen
$MapPatternShot X=1000 Y=-800 SHOT=CrossBlue
$MapPatternShot X=1000 Y=-750 SHOT=CrossGreen
$MapPatternShot X=1000 Y=-700 SHOT=CrossBlue
$MapPatternShot X=1000 Y=-650 SHOT=CrossGreen
$MapPatternShot X=1000 Y=-600 SHOT=CrossBlue
$MapPatternShot X=1000 Y=-550 SHOT=CrossGreen
$MapPatternShot X=1000 Y=-500 SHOT=CrossBlue
$MapPatternShot X=1000 Y=-450 SHOT=CrossGreen
$MapPatternShot X=1000 Y=-400 SHOT=CrossBlue
$MapPatternShot X=1000 Y=-350 SHOT=CrossGreen
$MapPatternShot X=1000 Y=-300 SHOT=CrossBlue
$MapPatternShot X=1000 Y=-250 SHOT=CrossGreen
$MapPatternShot X=1000 Y=-200 SHOT=CrossBlue
$MapPatternShot X=1000 Y=-150 SHOT=CrossGreen
$MapPatternShot X=1000 Y=-100 SHOT=CrossBlue
$MapPatternShot X=1000 Y=-50 SHOT=CrossGreen
$MapPatternShot X=1000 Y=0 SHOT=CrossBlue
$MapPatternShot X=1000 Y=50 SHOT=CrossGreen
$MapPatternShot X=1000 Y=100 SHOT=CrossBlue
$MapPatternShot X=1000 Y=150 SHOT=CrossGreen
$MapPatternShot X=1000 Y=200 SHOT=CrossBlue
$MapPatternShot X=1000 Y=250 SHOT=CrossGreen
$MapPatternShot X=1000 Y=300 SHOT=CrossBlue
$MapPatternShot X=1000 Y=350 SHOT=CrossGreen
$MapPatternShot X=1000 Y=400 SHOT=CrossBlue
$MapPatternShot X=1000 Y=450 SHOT=CrossGreen
$MapPatternShot X=1000 Y=500 SHOT=CrossBlue
$MapPatternShot X=1000 Y=550 SHOT=CrossGreen
$MapPatternShot X=1000 Y=600 SHOT=CrossBlue
$MapPatternShot X=1000 Y=650 SHOT=CrossGreen
$MapPatternShot X=1000 Y=700 SHOT=CrossBlue
$MapPatternShot X=1000 Y=750 SHOT=CrossGreen
$MapPatternShot X=1000 Y=800 SHOT=CrossBlue
$MapPatternShot X=1000 Y=850 SHOT=CrossGreen
$MapPatternShot X=1000 Y=900 SHOT=CrossBlue
$MapPatternShot X=1000 Y=950 SHOT=CrossGreen
$MapPatternShot X=1000 Y=1000 SHOT=CrossBlue
</bullet_pattern>
<var name="MapPatternShot">
<bullet speed="0" angle="0" shot_type="[SHOT]" uses_direct_location_control="true" never_collides_with_terrain="true" dumbfire="true">
<change location="[X],[Y]" angle="0" time="0"/>
<wait time="10"/>
</bullet>
</var>
..[Can you control loot from killing enemies]...
I saw int he wiki that you can create an effect, that lets enemies drop items (like what Life Harvester does) but could you also make it that the an enemy itself would drop an item without having the need of owning a specific item/upgrade?You could do it via a bullet pattern fairly easily using death_spiral_movement_driving_bullet_pattern, and then spawn entity.
Or, in other words, that the enemy has this effect on all runs you do?
<change location="0,-100" time="0"/>
<change relative="true" location="100,0" time="0.75"/>
Result: Entity moves to the left 100 pixels from original position.
<change location="0,-100" time="0"/>
<wait time="0.01"/>
<change relative="true" location="100,0" time="0.75"/>
Result: Entity appears 100 pixels to the right of the original position. Then shifts 100 moves to the left ending up at the original position.
<change location="0,-100" time="0.01"/>
<change relative="true" location="100,0" time="0.75"/>
Result: Entity moves very quickly to 100 pixels to the right of the original position. Then moves 100 moves to the left ending up at the original position.
Hopefully this will reduce the amount of time you spend wandering the halls cursing at Keith.
It is an admirable, if futile, goal.Hopefully this will reduce the amount of time you spend wandering the halls cursing at Keith.
I'm detecting a theme here.
See, Keith is such a great guy, and I know there are really good reasons for things be done in a certain way.Neither of these things is true.
And sometimes there are going to be idiosyncratic features.That's true.
Obviously he knows about them.That's only occasionally true.
But no one ever wrote them down to be passed along to us poor suckers trying to work through this.No information was purposely withheld, is all I can plead :) This is our first time trying to have "real" modding that's not done via some editor or otherwise limited to a pretty specific subset of the game. Any time I added a tag or attribute needed by a content guy I put it in the wiki, but we're finding out that this is woefully inadequate :)
Question: as far as I can tell, you cannot control the facing of a shot sprite. It will always face in the direction it is traveling. You can fake this if you just want it to travel backwards with negative speed. But if you want it to travel along say angle 0, but be turned to face angle 30, you need to attach it to another invisible shot? Is that correct? Or is there a facing attribute on bullet I'm missing?shots generate facing the angle you chose (movement direction is not tied to rotation), so you want to spawn them at angle 30, then immediately change movement direction.
##On boss entity
<system type="TakeBallAndGoHomeSystem" offset="0,0"/>
##System defintions
<system name="SuicideSystem"
category="Weapon"
shot_type="Invisible"
damage_type="Energy"
attack_power="1"
fire_rate="2000"
cue_time = "0.0"
range_actual="10"
shots_per_salvo="1"
shot_speed="0"
targeting_logic="Dumbfire"
firing_timing="AllTheTime"
image_name="Invisible"
destroys_firing_entity="true"
>
</system>
<system name="TakeBallAndGoHomeSystem"
category="Weapon"
shot_type="Invisible"
damage_type="Energy"
attack_power="1"
fire_rate="2000"
cue_time = "0.0"
range_actual="10"
shots_per_salvo="1"
shot_speed="0"
targeting_logic="Dumbfire"
firing_timing="AllTheTime"
image_name="Invisible"
only_fires_on_death="true"
>
<effect timing="OnUse" targeting="AllEnemies" type="AddSystem" related_systems="SuicideSystem"/>
</system>
*Note: These might be able to be cleaned up by making it a DirectUseSystem instead of a weapon.
Q: What are the specifications for the boss (and miniboss) mid room spawning for the player?You start at the test start location of the room don't you?
Q: Does destroys_firing_entity count as a kill or not i.e. does it trigger on death effects?
Having fun trying to clear up my thing that endlessly respawns itself, needs to go *poof* without dying.
Did you have a play with my silly miniboss, which just spawns more and more enemies that revive if the boss isn't deadQ: Does destroys_firing_entity count as a kill or not i.e. does it trigger on death effects?
Having fun trying to clear up my thing that endlessly respawns itself, needs to go *poof* without dying.
Yes. You can actually have enemies that propagate from having multiple destroys_firing_entity and on_death effects. I found that out the hard way after my enemies started multiplying.
OnGUI: System.NullReferenceException: Object reference not set to an instance of an object
at GameEntityTypeData.GetReplacementToUse (.MersenneTwister Random, Int32 FloorIndex, RoomType RoomType) [0x00000] in <filename unknown>:0
at Room.SeedEntity (.GameEntityTypeData EntityTypeData, Vector2 spawnPoint, .MersenneTwister Random, Int32 FloorIndex, System.String SourceNameForErrorLog) [0x00000] in <filename unknown>:0
at CombatEncounter+<>c__DisplayClass27_0.<Create>b__0 (.ArcenXMLElement Node) [0x00000] in <filename unknown>:0
at ArcenXML.CustomProcessLoadedXml (.ArcenXMLElement Root, .CustomXmlProcessor Processor) [0x00000] in <filename unknown>:0
at ArcenXML.CustomProcessXML (System.String FilePath, .CustomXmlProcessor Processor) [0x00000] in <filename unknown>:0
at CombatEncounter.Create (Vector2 SpawnPoint, Int32 FloorIndex, Boolean CopyStuffFromOldPlayerEntity, .GameEntity oldPlayerEntity, System.Collections.Generic.List`1 modifiersBeforeSwitch, System.Collections.Generic.List`1 modifiersForShotsBeforeSwitch) [0x00000] in <filename unknown>:0
at CombatEncounter.Create (Vector2 SpawnPoint, Int32 FloorIndex) [0x00000] in <filename unknown>:0
at Game.ReloadTestChamber () [0x00000] in <filename unknown>:0
at EscapeMenu+<>c.<SubclassInit>b__14_2 (ClickType <Click>) [0x00000] in <filename unknown>:0
at ArcenQueuedButtonClickDelegate.Execute () [0x00000] in <filename unknown>:0
at ArcenGUIManager.DrawGUI () [0x00000] in <filename unknown>:0
at MainCameraLogic.OnGUI () [0x00000] in <filename unknown>:0
Stack Trace: at GameEntityTypeData.GetReplacementToUse (.MersenneTwister Random, Int32 FloorIndex, RoomType RoomType) [0x00000] in <filename unknown>:0
at Room.SeedEntity (.GameEntityTypeData EntityTypeData, Vector2 spawnPoint, .MersenneTwister Random, Int32 FloorIndex, System.String SourceNameForErrorLog) [0x00000] in <filename unknown>:0
at CombatEncounter+<>c__DisplayClass27_0.<Create>b__0 (.ArcenXMLElement Node) [0x00000] in <filename unknown>:0
at ArcenXML.CustomProcessLoadedXml (.ArcenXMLElement Root, .CustomXmlProcessor Processor) [0x00000] in <filename unknown>:0
at ArcenXML.CustomProcessXML (System.String FilePath, .CustomXmlProcessor Processor) [0x00000] in <filename unknown>:0
at CombatEncounter.Create (Vector2 SpawnPoint, Int32 FloorIndex, Boolean CopyStuffFromOldPlayerEntity, .GameEntity oldPlayerEntity, System.Collections.Generic.List`1 modifiersBeforeSwitch, System.Collections.Generic.List`1 modifiersForShotsBeforeSwitch) [0x00000] in <filename unknown>:0
at CombatEncounter.Create (Vector2 SpawnPoint, Int32 FloorIndex) [0x00000] in <filename unknown>:0
at Game.ReloadTestChamber () [0x00000] in <filename unknown>:0
at EscapeMenu+<>c.<SubclassInit>b__14_2 (ClickType <Click>) [0x00000] in <filename unknown>:0
at ArcenQueuedButtonClickDelegate.Execute () [0x00000] in <filename unknown>:0
at ArcenGUIManager.DrawGUI () [0x00000] in <filename unknown>:0
at MainCameraLogic.OnGUI () [0x00000] in <filename unknown>:0
What do you do?Very helpful, thanks!my solution was to never have angle_from_parent or offset_from_parent on the bullets of the pattern, but rather only on bullets that draw the pattern.
Also, is there any way to get a bullet that is using angle_from_parent or offset_from_parent to collide with terrain? Once either of those <change> commands are present, the shot appears to completely ignore walls. That's fine when I'm using orbitals, but in this case I want the pattern of bullets to move relative to the core, but die if they happen to touch a wall. I tried never_collides_with_terrain="false" and that doesn't do it.
Goddammit, I wanted to change it, so you get a bonus when you beat a boss on perfect.
I already did weeks ago but I never got an answer, so I wanted it to change myself.Goddammit, I wanted to change it, so you get a bonus when you beat a boss on perfect.
Hm, that might not be a bad idea... maybe drop that one onto Mantis for later?
I already did weeks ago but I never got an answer, so I wanted it to change myself.Goddammit, I wanted to change it, so you get a bonus when you beat a boss on perfect.
Hm, that might not be a bad idea... maybe drop that one onto Mantis for later?
https://www.arcengames.com/mantisbt/view.php?id=18630
...oh. Yeah, I'm thinking Chris and Keith just plain dont have enough time to really be going through the Mantis stuff right now, and I dont think that's something that the rest of us could add to the game ourselves (unless maybe Draco could do it?). But I do kinda think it's a good idea to give the player a useful reward for perfecting something. That'd be a satisfying mechanic.
I've been off of the forums, but still doing modding things. In secret. Just like this is my own personal secret forum. Anyway, a new question.
Q: Why does the orbital angle of a Ptarthian Orbit change depending on the presence or absence of a system (at least one)? The presence of one or more systems shifts the orbital by 45 degrees it seems.
A: Because someone (i.e., Keith) likes to know that I've descended into gibbering madness.
https://www.arcengames.com/mantisbt/view.php?id=18785
I not sure how critical it is. I'm just going to give everything a weapon. Who needs framerates higher than 10 anyway?