From e1460da1579994fcc2383b1bf4a6f77f4accd25f Mon Sep 17 00:00:00 2001 From: pkali Date: Sat, 27 Jan 2024 14:31:59 -0500 Subject: [PATCH] price we pay for propaganda --- Manuals/man_cart_txt_EN.asm | 1912 ----------------------------------- constants.asm | 16 +- definitions.asm | 4 +- scorch.asm | 32 +- scorch.xex | Bin 56602 -> 69646 bytes weapons.asm | 2 +- 6 files changed, 31 insertions(+), 1935 deletions(-) delete mode 100644 Manuals/man_cart_txt_EN.asm diff --git a/Manuals/man_cart_txt_EN.asm b/Manuals/man_cart_txt_EN.asm deleted file mode 100644 index 59b3975..0000000 --- a/Manuals/man_cart_txt_EN.asm +++ /dev/null @@ -1,1912 +0,0 @@ - .align 40 - dta " Basic instruction manual:" - .align 40 - dta "---------------------------" - .align 40 - .align 40 - dta "You can play using the keyboard (all" - .align 40 - dta "functionality) or controllers in all of" - .align 40 - dta "the ports (all functionality necessary" - .align 40 - dta "for gameplay)." - .align 40 - .align 40 - dta " 1. Game Option Selection." - .align 40 - dta "---------------------------" - .align 40 - .align 40 - .align 40 - dta "On the first screen, you can configure" - .align 40 - dta "gameplay options:" - .align 40 - dta $5a, d" number of players (2 - 6) includes" - .align 40 - dta "both human and computer-controlled" - .align 40 - dta "players" - .align 40 - dta $5a, d" the initial amount of cash of each" - .align 40 - dta "player (2K is the optimal value we" - .align 40 - dta "chose, but for short games, it is worth" - .align 40 - dta "choosing a higher value)" - .align 40 - dta $5a, d" gravity" - .align 40 - dta $5a, d" maximum wind strength (wind is drawn" - .align 40 - dta "at the beginning of each round or during" - .align 40 - dta "the round between turns, here we can" - .align 40 - dta "choose how strong it can be):" - .align 40 - dta d" ", $5a, d" 1B - maximum wind strength: 5" - .align 40 - dta d" ", $5a, d" 3B - maximum wind strength: 20" - .align 40 - dta d" ", $5a, d" 5B - maximum wind strength: 40" - .align 40 - dta d" ", $5a, d" 7B - maximum wind strength: 70" - .align 40 - dta d" ", $5a, d" 9B - maximum wind strength: 99" - .align 40 - dta $5a, d" number of rounds in a game" - .align 40 - dta $5a, d" missile speed (does not affect the" - .align 40 - dta "flight path - only changes the apparent" - .align 40 - dta "missile speed - does not change anything" - .align 40 - dta "in the gameplay itself)" - .align 40 - dta $5a, d" frequency of suicides :) - if for a" - .align 40 - dta "number of turns the game has not" - .align 40 - dta "recorded hits (tanks are constantly" - .align 40 - dta "shooting inaccurately), after one of" - .align 40 - dta "such misses a tank commits suicide -" - .align 40 - dta "here you determine how long they can" - .align 40 - dta """shooting for the stars"" :) - if only" - .align 40 - dta "people play the optimal setting is" - .align 40 - dta """norm"", in the case of" - .align 40 - dta "computer-controlled players ... you" - .align 40 - dta "choose." - .align 40 - dta $5a, d" The height (and undulation) of the" - .align 40 - dta "mountains from almost flat (NL - Kingdom" - .align 40 - dta "of the Netherlands), to soaring and high" - .align 40 - dta "(NP - Federal Democratic Republic of" - .align 40 - dta "Nepal)" - .align 40 - dta $5a, d" the way the walls (edges of the" - .align 40 - dta "screen) work:" - .align 40 - dta $5a, d" none - projectiles that flew off the" - .align 40 - dta "screen do not return (black color of the" - .align 40 - dta "screen frame)" - .align 40 - dta $5a, d" wrap - the screen ""wraps"" and" - .align 40 - dta "projectiles that flew to the right" - .align 40 - dta "appear on the left side and vice versa" - .align 40 - dta "(purple color of the screen frame)" - .align 40 - dta $5a, d" bump - the right and left walls" - .align 40 - dta "deflect projectiles that want to fly" - .align 40 - dta "through them (dark blue color of the" - .align 40 - dta "screen frame)" - .align 40 - dta $5a, d" boxy - just like bump, except that the" - .align 40 - dta """ceiling"" also reflects projectiles" - .align 40 - dta "(green color of the screen frame)" - .align 40 - dta $5a, d" rand - at the beginning of each round," - .align 40 - dta "one of the above 4 ways the walls work" - .align 40 - dta "is drawn." - .align 40 - .align 40 - dta "During gameplay, the current mode of the" - .align 40 - dta "walls is represented by the color of the" - .align 40 - dta "screen frame:" - .align 40 - dta $5a, d" none - black," - .align 40 - dta $5a, d" wrap - purple," - .align 40 - dta $5a, d" bump - dark blue," - .align 40 - dta $5a, d" boxy - green." - .align 40 - .align 40 - dta "Select options with cursor keys or a" - .align 40 - dta "controller." - .align 40 - .align 40 - dta "The [TAB], [SELECT] or second controller" - .align 40 - dta "button (supported Joy 2B+ standard or" - .align 40 - dta "compatible) key change the color of the" - .align 40 - dta "mountains (3 versions to choose from)." - .align 40 - dta "If the cursor indicates the wind" - .align 40 - dta "strength selection option ""Wind"" change" - .align 40 - dta "the way the wind strength is drawn from" - .align 40 - dta """every round"" to ""every turn"" and vice" - .align 40 - dta "versa. Drawing every turn is indicated" - .align 40 - dta "by the ""?"" sign next to the word ""Wind""." - .align 40 - dta "If the cursor indicates the gravity" - .align 40 - dta "selection option ""Gravity"" changes the" - .align 40 - dta "procedure of falling the ground to a" - .align 40 - dta "less impressive but faster one, and vice" - .align 40 - dta "versa. The selection of fast ground fall" - .align 40 - dta "is indicated by the letter ""f"" next to" - .align 40 - dta "the word ""Gravity""." - .align 40 - .align 40 - dta "The [RETURN] key or a controller button" - .align 40 - dta "moves to the next screen." - .align 40 - .align 40 - dta " 2. Names of players and AI opponents" - .align 40 - dta "--------------------------------------" - .align 40 - .align 40 - .align 40 - dta "The second screen is shown for each" - .align 40 - dta "player. Here you can use the cursor keys" - .align 40 - dta "or controller to select whether the tank" - .align 40 - dta "will be driven by a human (HUMAN option)" - .align 40 - dta "or a computer (other options)." - .align 40 - dta "The [TAB], [SELECT] or second controller" - .align 40 - dta "button allows to choose which controller" - .align 40 - dta "port the player will use." - .align 40 - dta "The [INVERSE] or [OPTION] key allows you" - .align 40 - dta "to select one of the 3 available tank" - .align 40 - dta "shapes." - .align 40 - dta "At the same time, you can enter the name" - .align 40 - dta "of the selected player from the" - .align 40 - dta "keyboard." - .align 40 - dta "When the [RETURN] key is pressed or the" - .align 40 - dta "controller button is pressed briefly," - .align 40 - dta "the screen switches to the next player" - .align 40 - dta "until the difficulty levels for each" - .align 40 - dta "player are selected." - .align 40 - dta "The player's name can also be entered" - .align 40 - dta "with the controller. After pressing and" - .align 40 - dta "holding the button for more than 1s, you" - .align 40 - dta "can use up/down movements to change the" - .align 40 - dta "letter being entered, and left/right" - .align 40 - dta "movements to change its position in the" - .align 40 - dta "name. Releasing the button ends the name" - .align 40 - dta "entry and returns to the level" - .align 40 - dta "selection." - .align 40 - .align 40 - dta "If the name is not entered, it will be" - .align 40 - dta "supplemented with the default name." - .align 40 - .align 40 - dta " 3. Shopping screen (before each round)" - .align 40 - dta "----------------------------------------" - .align 40 - .align 40 - .align 40 - .align 40 - dta "On this screen, you can make purchases" - .align 40 - dta "of offensive and defensive weapons. Only" - .align 40 - dta "those weapons that the player can afford" - .align 40 - dta "are visible, along with information" - .align 40 - dta "about the price and the number of units" - .align 40 - dta "of a given weapon that will be obtained" - .align 40 - dta "for that price. The information on the" - .align 40 - dta "screen probably needs no more" - .align 40 - dta "description. You move through the lists" - .align 40 - dta "with the cursor keys (up and down) or" - .align 40 - dta "with the controller, the [TAB] key or" - .align 40 - dta "the left arrow, the left controller tilt" - .align 40 - dta "or second controller button change the" - .align 40 - dta "screen to defensive or offensive" - .align 40 - dta "weapons, the [SPACE] key or the right" - .align 40 - dta "arrow and also the controller to the" - .align 40 - dta "right does the purchase of the indicated" - .align 40 - dta "weapon." - .align 40 - .align 40 - dta "The [RETURN] key or the controller" - .align 40 - dta "button press switches to the defensive" - .align 40 - dta "weapon activation screen. Here you can" - .align 40 - dta "activate previously bought defensive (or" - .align 40 - dta "offensive after switching with [TAB]," - .align 40 - dta "etc) weapons." - .align 40 - .align 40 - .align 40 - .align 40 - dta "This makes it possible to activate" - .align 40 - dta "shields and others before the round" - .align 40 - dta "starts." - .align 40 - .align 40 - dta "Another [RETURN] key or controller" - .align 40 - dta "button press switches to the next" - .align 40 - dta "player's shopping screen." - .align 40 - dta "(For computer players this screen is not" - .align 40 - dta "shown.)" - .align 40 - .align 40 - dta " 4. The main screen of the game" - .align 40 - dta "--------------------------------" - .align 40 - .align 40 - .align 40 - dta "The status line shows which player is" - .align 40 - dta "currently allowed to take a shot and a" - .align 40 - dta "set of other information:" - .align 40 - dta $5a, d" player's tank name," - .align 40 - dta $5a, d" active controller number or difficulty" - .align 40 - dta "level of computer-controlled player" - dta d"(1-" - dta d"Moron"* - dta d" - 8-" - dta d"Unknown"* - dta d")," - dta d" " - .align 40 - .align 40 - dta $5a, d" currently selected offensive weapon" - .align 40 - dta "(symbol quantity and name)," - .align 40 - dta $5a, d" the player's remaining energy points" - .align 40 - dta "and if he has an active defensive weapon" - .align 40 - dta "that has its energy - in parentheses the" - .align 40 - dta "energy level," - .align 40 - dta $5a, d" the angle and the direction of the" - .align 40 - dta "barrel set by the player," - .align 40 - dta $5a, d" the shot strength set by the player" - .align 40 - dta "(the maximum shot strength is limited by" - .align 40 - dta "the player's energy - it can not exceed" - .align 40 - dta d"the energy ", $5a, d" 10 . This means that you" - .align 40 - dta "can fire weaker shots only when having a" - .align 40 - dta "small amount of energy," - .align 40 - dta $5a, d" the current round number," - .align 40 - dta $5a, d" wind speed and direction," - dta d"* ""computer"" symbol if " - dta d"Auto Defense"* - dta d" " - .align 40 - .align 40 - dta "is active," - .align 40 - dta $5a, d" in parentheses is the name of the" - .align 40 - dta "active defensive weapon - if there is" - .align 40 - dta "any activated by the player." - .align 40 - .align 40 - dta "The basic controls are simple enough -" - .align 40 - dta "cursor keys or controller: left/right -" - .align 40 - dta "change the angle of the barrel, up/down" - .align 40 - dta "- change the the force of the shot." - .align 40 - dta "Other functions:" - .align 40 - .align 40 - dta $5a, d" [SPACE] or controller button pressed" - .align 40 - dta "briefly - firing a shot." - .align 40 - dta $5a, d" [TAB] or [SELECT] or second controller" - .align 40 - dta "button - selection of offensive weapons" - .align 40 - dta "(this option is not available directly" - .align 40 - dta "with one button controller - you need to" - .align 40 - dta "select Inventory). |" - .align 40 - dta $5a, d" [I] or longer holding the controller" - .align 40 - dta "button - go to Inventory. It is a screen" - .align 40 - dta "(actually two) with the same layout as" - .align 40 - dta "the shopping menu, it also works" - .align 40 - dta "similarly except that here you don't buy" - .align 40 - dta "weapons, but choose one of the offensive" - .align 40 - dta "ones to shoot or activate a defensive" - .align 40 - dta "weapon. |" - .align 40 - dta $5a, d" [A] or [OPTION] - go directly to the" - .align 40 - dta "defensive weapons activation." - .align 40 - dta $5a, d" [M] - disable/enable background music." - .align 40 - dta "|" - .align 40 - dta $5a, d" [S] - disable/enable effect sounds. |" - .align 40 - dta $5a, d" [START] - speed up some game" - .align 40 - dta "animations. |" - .align 40 - dta $5a, d" [O] - end the current game and jump to" - .align 40 - dta "the Game Over screen with a summary. The" - .align 40 - dta "summary of the results does not take" - .align 40 - dta "into account the current round of the" - .align 40 - dta "game, but only the rounds completed" - .align 40 - dta "earlier. This corresponds to pressing" - .align 40 - dta "the [ESC] key with the difference that" - .align 40 - dta "the summary and credits are displayed. |" - .align 40 - dta $5a, d" [START] + [OPTION] - immediately force" - .align 40 - dta "the end of the game (Game Over), just" - .align 40 - dta "like [O] but without confirmation." - .align 40 - dta $5a, d" [G] - changes the mountain shading |" - .align 40 - dta $5a, d" [ESC] - during the entire game at any" - .align 40 - dta "time (unless the computer is playing," - .align 40 - dta "then sometimes you have to wait a while)" - .align 40 - dta "you can press the [ESC] key, which" - .align 40 - dta "allows you to abort the game and return" - .align 40 - dta "to the beginning (of course, there is" - .align 40 - dta "protection against accidental pressing)." - .align 40 - dta "|" - .align 40 - dta $5a, d" [Y] - when asked to abort or terminate" - .align 40 - dta "the game - confirmation |" - .align 40 - dta $5a, d" [CTRL] + [HELP] - Toggle ""visual" - .align 40 - dta "debug"" mode. It displays distances" - .align 40 - dta "measured, laser aiming, and aiming" - .align 40 - dta "technique. It leaves a mess on the" - .align 40 - dta "screen, but it does not impair the game," - .align 40 - dta "just makes it a bit harder. |" - .align 40 - .align 40 - dta " 5. Game mechanics - offensive weapons" - .align 40 - dta "---------------------------------------" - .align 40 - .align 40 - dta " Energy of tanks." - .align 40 - dta "------------------" - .align 40 - dta "At the beginning of each round, each" - .align 40 - dta "tank has 99 ash units of energy." - .align 40 - dta "Tanks' energy is depleted in 3 ways:" - .align 40 - dta $5a, d" one unit after each shot" - .align 40 - dta $5a, d" while falling (one pixel down -2" - .align 40 - dta "units)." - .align 40 - dta $5a, d" when a projectile hits the tank or" - .align 40 - dta "next to it - and here the amount of" - .align 40 - dta "energy subtracted depends on the" - .align 40 - dta "distance from the center of the" - .align 40 - dta "explosion and the type/power of the" - .align 40 - dta "projectile." - .align 40 - .align 40 - dta " How energy and money works:" - .align 40 - dta "-----------------------------" - .align 40 - dta "After each round the amount of money" - .align 40 - dta "gained/lost is calculated, this is done" - .align 40 - dta "on the basis of two variables" - .align 40 - dta "accumulated by each tank during the" - .align 40 - dta "round. These variables are:" - .align 40 - .align 40 - dta "gain - energy ""captured"" from tanks hit" - .align 40 - dta "(also if you hit yourself :) and here's" - .align 40 - dta "the catch, if you have very little" - .align 40 - dta "energy left it can be profitable to hit" - .align 40 - dta "yourself with a powerful weapon" - .align 40 - .align 40 - dta "lose - energy lost due to explosion/fall" - .align 40 - dta "(and here it is important - to count the" - .align 40 - dta "total loss of energy even if the tank" - .align 40 - dta "has less at the moment of hit)." - .align 40 - .align 40 - dta "In addition, the tank that won the round" - .align 40 - dta "has a parameter gain (captured from hit" - .align 40 - dta "tanks energy) increased by the remaining" - .align 40 - dta "energy at the end of the round (because" - .align 40 - dta "it did not die and should have it -" - .align 40 - dta "although it also happens otherwise :) )" - .align 40 - .align 40 - dta "Specifically:" - .align 40 - .align 40 - dta " After each round:" - .align 40 - dta "-------------------" - .align 40 - dta d"money = money + (20 ", $5a, d" (gain+energy))." - .align 40 - .align 40 - dta d"money = money - (10 ", $5a, d" lose)." - .align 40 - .align 40 - dta "if money <0 then money=0." - .align 40 - .align 40 - dta "(at the start of each round gain and" - .align 40 - dta "lose have a value of 0)." - .align 40 - .align 40 - dta "During a round, if another tank is hit" - .align 40 - dta "as a result of a shot fired by a tank," - .align 40 - dta "the tank firing the shot ""gets the" - .align 40 - dta "energy"" taken away from the hit tank." - .align 40 - dta " tank taking a shot:" - .align 40 - dta "---------------------" - .align 40 - dta "gain = gain + EnergyDecrease." - .align 40 - dta " tank hit:" - .align 40 - dta "-----------" - .align 40 - dta "lose = lose + EnergyDecrease." - .align 40 - .align 40 - dta "Where EnergyDecrease is the loss of" - .align 40 - dta "energy due to the hit." - .align 40 - .align 40 - dta "Of course, at the same time the hit tank" - .align 40 - dta "loses the amount of energy stored in" - .align 40 - dta "EnergyDecrease, except that here the" - .align 40 - dta "loss cannot exceed the energy you have." - .align 40 - .align 40 - dta " How a hit works." - .align 40 - dta "------------------" - .align 40 - dta "Each weapon that results in an explosion" - .align 40 - dta "has its own blast radius." - .align 40 - .align 40 - dta "After the explosion, every tank in its" - .align 40 - dta "range loses energy." - .align 40 - .align 40 - dta "It works in such a way that if the hit" - .align 40 - dta "is exactly on the center point of the" - .align 40 - dta "tank EnergyDecrease receives the maximum" - .align 40 - dta "value for the weapon, and for each pixel" - .align 40 - dta "of distance from the center of the tank" - .align 40 - dta "this value is reduced by 8." - .align 40 - .align 40 - dta "For example, if a hit with the Baby" - .align 40 - dta "Missile weapon hits the center of the" - .align 40 - dta "tank perfectly, it will lose exactly 88" - .align 40 - dta "units of energy (plus what it loses" - .align 40 - dta "falling after the explosion)." - .align 40 - dta "If you hit with the same weapon at a" - .align 40 - dta "distance of 10 pixels from the center of" - .align 40 - dta "the tank, the loss will be only 8 units." - .align 40 - .align 40 - dta "And here are the values of maximum" - .align 40 - dta "energy loss for individual weapons. If a" - .align 40 - dta "weapon explodes several times, each" - .align 40 - dta "explosion is calculated independently" - .align 40 - dta "(additional values in the table):" - .align 40 - .align 40 - dta "Offensive weapons and maximum energy" - .align 40 - dta "loss:" - .align 40 - dta $5a, d" Baby Missile: 88" - .align 40 - dta $5a, d" Missile: 136" - .align 40 - dta $5a, d" Baby Nuke: 200" - .align 40 - dta $5a, d" Nuke: 240" - .align 40 - dta $5a, d" LeapFrog: 136 112 112" - .align 40 - dta $5a, d" Funky Bomb: 168 88 (* 5)" - .align 40 - dta $5a, d" MIRV: 136 (* 5)" - .align 40 - dta $5a, d" Death's Head: 240 (* 5)" - .align 40 - dta $5a, d" Napalm: 40 (this weapon is different" - .align 40 - dta "and the distance from the center is not" - .align 40 - dta "determined, simply any tank in range of" - .align 40 - dta "the flames loses 40 units of energy)" - .align 40 - dta $5a, d" Hot Napalm: 80 (the rule is the same" - .align 40 - dta "as in Napalm)" - .align 40 - dta $5a, d" Baby Roller: 88" - .align 40 - dta $5a, d" Roller: 168" - .align 40 - dta $5a, d" Heavy Roller: 240" - .align 40 - dta $5a, d" Riot Charge: 0 (no energy is" - .align 40 - dta "subtracted, but a portion of the ground" - .align 40 - dta "upward from the hit point in a 31-pixel" - .align 40 - dta "radius is removed)" - .align 40 - dta $5a, d" Riot Blast: 0 (as in Riot Charge, but" - .align 40 - dta "in a radius of 61 pixels)" - .align 40 - dta $5a, d" Riot Bomb: 0 (no energy is subtracted," - .align 40 - dta "but the ground in a radius of 17 pixels" - .align 40 - dta "from the hit point is destroyed - as in" - .align 40 - dta "the case of Missile. The weapon is" - .align 40 - dta "useful for digging out after being" - .align 40 - dta "buried, or for undermining an opponent)" - .align 40 - dta $5a, d" Heavy Riot Bomb: 0 (as in Riot Bomb," - .align 40 - dta "but the explosion radius is 29 pixels" - .align 40 - dta "from the point of impact - as in the" - .align 40 - dta "case of Nuke)" - .align 40 - dta $5a, d" Baby Digger: 0 (no energy is" - .align 40 - dta "subtracted, but a portion of the ground" - .align 40 - dta "is undermined in a radius of 60 pixels" - .align 40 - dta "from the point of impact)" - .align 40 - dta $5a, d" Digger: 0 (as above - greater" - .align 40 - dta "undermining)" - .align 40 - dta $5a, d" Heavy Digger: 0 (as above - greatest" - .align 40 - dta "undermining)" - .align 40 - dta $5a, d" Sandhog: 0 (as above - another way of" - .align 40 - dta "undermining)" - .align 40 - dta $5a, d" Heavy Sandhog: 0 (as above - largest" - .align 40 - dta "dig)" - .align 40 - dta $5a, d" Dirt Clod: 0 (no energy is subtracted," - .align 40 - dta "but a ground ball with a radius of 12" - .align 40 - dta "pixels from the hit point is created." - .align 40 - dta "The weapon is useful for burying the" - .align 40 - dta "opponent)" - .align 40 - dta $5a, d" Dirt Ball: 0 (as above, but the radius" - .align 40 - dta "of the ball is 22 pixels)" - .align 40 - dta $5a, d" Ton of Dirt: 0 (as above, but the" - .align 40 - dta "radius of the ball is 31 pixels)" - .align 40 - dta $5a, d" Liquid Dirt: 0 (floods the ground at" - .align 40 - dta "the point of hit with liquid soil," - .align 40 - dta "filling in the depressions)" - .align 40 - dta $5a, d" Stomp: 0 (no energy is subtracted, but" - .align 40 - dta "all tanks within a radius depending on" - .align 40 - dta "the force of the shot are pushed back," - .align 40 - dta "and after being pushed back they may" - .align 40 - dta "fall or be buried. With a maximum force" - .align 40 - dta "of 990 units, the radius of action is" - .align 40 - dta "about 60 pixels)" - .align 40 - dta $5a, d" Laser: 100 (but here it is also" - .align 40 - dta "different - only in a case of a direct" - .align 40 - dta "hit simply subtract 100 units of energy" - .align 40 - dta "- that is, the tank always dies)" - .align 40 - .align 40 - dta "Large points received by the player is" - .align 40 - dta "the number of tanks that died earlier" - .align 40 - dta "than him. If any of the other tanks" - dta d"capitulated earlier (" - dta d"White Flag"* - dta d") is" - dta d" " - .align 40 - .align 40 - dta "not added to those that died and does" - .align 40 - dta "not give points." - .align 40 - dta "Only these points determine the order in" - .align 40 - dta "the summary." - .align 40 - .align 40 - dta " 6. And now for defensive weapons:" - .align 40 - dta "-----------------------------------" - dta d"* " - dta d"White Flag"* - dta d" - causes the surrender" - dta d" " - .align 40 - .align 40 - dta "of the player (can sometimes be useful" - .align 40 - dta "in a hopeless situation). The advantage" - .align 40 - dta "is that by surrendering you don't give a" - .align 40 - dta "big point to your opponents and don't" - .align 40 - dta "cause one of them to gain by killing us," - .align 40 - dta "you also limit the loss of your energy" - .align 40 - dta "and also cash. An important note - this" - .align 40 - dta "is the only defensive weapon that can be" - .align 40 - dta "deactivated. All you have to do is" - .align 40 - dta "re-enter inventory and once again select" - .align 40 - dta "its activation." - .align 40 - dta d"* " - dta d"Battery"* - dta d" - when activated, it" - dta d" " - .align 40 - .align 40 - dta "recharges the tank's energy to full (99" - .align 40 - dta "units). It is one of three defensive" - .align 40 - dta "weapons that does not deactivate other" - .align 40 - dta "defensive weapons when used." - .align 40 - dta d"* " - dta d"Hovercraft"* - dta d" - a weapon that allows" - dta d" " - .align 40 - .align 40 - dta "the tank to move. It has its own fuel" - .align 40 - dta "supply in form of electric eels and in" - .align 40 - dta "addition, it can be activated multiple" - .align 40 - dta "times during the same turn, and after" - .align 40 - dta "using it, you can activate another" - .align 40 - dta "defensive weapon and fire a shot in the" - .align 40 - dta "same turn. After using it, the tank" - .align 40 - dta "rises above the mountains and using the" - .align 40 - dta "cursor keys or a controller you can move" - .align 40 - dta "the tank to a new position. [SPACE] or" - .align 40 - dta "the controller button cause the tank to" - .align 40 - dta "land in a new place. You can fly until" - .align 40 - dta "the tank runs out of eels (presented on" - .align 40 - dta "the status bar like the energy of a" - .align 40 - dta "defensive weapon), if the eel fuel runs" - .align 40 - dta "out the tank will fall down on its own." - .align 40 - dta "It is not possible to land on other" - .align 40 - dta "tanks." - .align 40 - dta d"* " - dta d"Parachute"* - dta d" - does not protect" - dta d" " - .align 40 - .align 40 - dta "against loss of energy due to a" - .align 40 - dta "neighboring explosion, makes you not" - .align 40 - dta "lose energy during ONE fall. After such" - .align 40 - dta "a fall, it deactivates and a new" - .align 40 - dta "parachute must be activated." - .align 40 - dta d"* " - dta d"Shield"* - dta d" - the simplest shield works" - dta d" " - .align 40 - dta d"exactly the opposite of " - dta d"Parachute"* - dta d"," - dta d" " - .align 40 - .align 40 - dta "it does not protect against energy loss" - .align 40 - dta "while falling, instead it protects" - .align 40 - dta "against energy loss caused by ONE" - .align 40 - dta "adjacent explosion. It protects once, no" - .align 40 - dta "matter how strong the explosion is" - .align 40 - dta "(whether tis but a scratch or a direct" - .align 40 - dta "hit with a nuke), and deactivates" - .align 40 - dta "immediately afterward." - .align 40 - dta d"* " - dta d"Heavy Shield"* - dta d" - a shield with its" - dta d" " - .align 40 - .align 40 - dta "own energy (at the start of 99 units)," - dta d"it works the same as " - dta d"Shield"* - dta d" (does" - dta d" " - .align 40 - .align 40 - dta "not protect against falling) with the" - .align 40 - dta "exception that it has its own energy" - .align 40 - dta "resource. When exploding, the energy of" - .align 40 - dta "this shield is reduced first, and if it" - .align 40 - dta "reaches 0, the shield deactivates and" - .align 40 - dta "further reduces the tank's energy. Due" - .align 40 - dta "to this action, a tank with this type of" - .align 40 - dta "shield can be ""killed"" by undermining" - .align 40 - dta "it, because falling reduces the energy" - .align 40 - dta "of the tank and not the shield." - .align 40 - dta d"* " - dta d"Force Shield"* - dta d" - the strongest" - dta d" " - .align 40 - .align 40 - dta "shield - works just like Heavy Shield" - .align 40 - dta "only that it is combined with" - dta d"Parachute"* - dta d". What is important in this" - dta d" " - .align 40 - .align 40 - dta "case, falling does not take energy away" - .align 40 - dta "from the shield or the tank. It is only" - .align 40 - dta "taken away by hits." - .align 40 - dta d"* " - dta d"Bouncy Castle"* - dta d" - a" - dta d" " - .align 40 - .align 40 - dta "passive-aggressive weapon :). It works" - .align 40 - dta "as follows - in a case of a direct tank" - .align 40 - dta "hit (and shield), it causes the" - .align 40 - dta "projectile to ""bounce"" in the opposite" - .align 40 - dta "direction with the same force with which" - .align 40 - dta "it was fired. In the absence of wind and" - .align 40 - dta "a difference in level, the weapon then" - .align 40 - dta "hits the tank that fired it. After such" - .align 40 - dta "a bounce, it deactivates. As the weapon" - .align 40 - dta "reacts in this way only to precise hits," - dta d"it is also works like " - dta d"Heavy Shield"* - dta d" " - .align 40 - .align 40 - dta "and has 99 units at the start (we will" - .align 40 - dta "probably have to rethink this value and" - .align 40 - dta "give a smaller one here)." - .align 40 - dta d"* " - dta d"Mag Deflector"* - dta d" - the second" - dta d" " - .align 40 - .align 40 - dta "passive-aggressive weapon :) . In case" - .align 40 - dta "of a direct hit on a tank (and shield)," - .align 40 - dta "it causes the hit point to move randomly" - .align 40 - dta "to the left or right side of the" - .align 40 - dta "protected tank, but not very far, so you" - .align 40 - dta "can get ""shrapnel"" with stronger" - dta d"weapons. As in the case of " - dta d"Bouncy"* - dta d" " - .align 40 - dta d"Castle" - dta d", it is also a shield that"* - dta d" " - .align 40 - dta d"corresponds to the action of " - dta d"Heavy"* - dta d" " - .align 40 - dta d"Shield" - dta d" and has 99 units at the start"* - dta d" " - .align 40 - .align 40 - dta "(probably here we will have also to" - .align 40 - dta "rethink this value and give a smaller" - .align 40 - dta "one)." - .align 40 - dta d"* " - dta d"Nuclear Winter"* - dta d" - adds nothing," - dta d" " - .align 40 - .align 40 - dta "takes nothing away :) - in fact, it is" - .align 40 - dta "not so much a defensive weapon as a" - .align 40 - dta "double-edged one. It floods the area" - .align 40 - dta "with ""radioactive"" fallout, which is" - .align 40 - dta "ordinary soil. If you do not have at" - .align 40 - dta "hand any weapon that digs up the" - .align 40 - dta "terrain, and for that a shield" - .align 40 - dta "(preferably disposable), then after such" - .align 40 - dta """fallout"" you will have to shoot" - .align 40 - dta "yourself - because being underground is" - .align 40 - dta "otherwise impossible. Alternatively," - dta d"White Flag"* - dta d" always remains." - dta d" " - .align 40 - .align 40 - dta d"* " - dta d"Long Schlong"* - dta d" - a special weapon :)" - dta d" " - .align 40 - .align 40 - dta "- Costs a lot, doesn't really help with" - .align 40 - dta "anything (except possibly digging" - .align 40 - dta "yourself out but only when slightly" - .align 40 - dta "buried but it has a cool name and looks" - .align 40 - dta "cool :) - It can be activated" - .align 40 - dta "independently of other defensive weapons" - .align 40 - dta "and remains active until the end of the" - .align 40 - dta "round (it cannot be deactivated)." - .align 40 - dta d"* " - dta d"Lazy Boy"* - dta d" - it is not actually a" - dta d" " - .align 40 - .align 40 - dta "defensive weapon. It is an aiming aid." - .align 40 - dta "When it is activated, the tank tries to" - .align 40 - dta "aim at the nearest enemy and" - .align 40 - dta "automatically adjusts the power of the" - .align 40 - dta "shot and angle. If it has too little" - .align 40 - dta "energy, it can sometimes aim wrong (it" - dta d"uses a method like " - dta d"Cyborg"* - dta d" to aim)." - dta d" " - .align 40 - dta d"Like " - dta d"Battery"* - dta d", it does not deactivate" - dta d" " - .align 40 - .align 40 - dta "other defensive weapons when used. Note:" - .align 40 - dta "There is no point in activating this" - .align 40 - dta "weapon before the round, targeting will" - .align 40 - dta "not take place because there is nothing" - .align 40 - dta "to target yet." - .align 40 - dta d"* " - dta d"Lazy Darwin"* - dta d" - works just like" - dta d" " - .align 40 - dta d"Lazy Boy"* - dta d" but targets the weakest" - dta d" " - .align 40 - .align 40 - dta "opponent. In this weapon, after" - .align 40 - dta "automatic targeting, ""visual targeting""" - .align 40 - dta "remains active, so you can easily change" - .align 40 - dta "the target and independently select" - .align 40 - dta "another opponent by seeing if you hit" - .align 40 - dta "him." - .align 40 - dta d"* " - dta d"Auto Defense"* - dta d" - activates the mode" - dta d" " - .align 40 - .align 40 - dta "of automatic activation of defensive" - .align 40 - dta "weapons. After its activation, the tank" - .align 40 - dta "automatically activates the strongest" - .align 40 - dta "shield it has (consuming it, of course)" - .align 40 - dta "at any time when there is no shield" - .align 40 - dta "(also between shots of other players)." - .align 40 - dta "At the same time, if the tank's energy" - .align 40 - dta "level drops below 30 units, it" - dta d"automatically activates " - dta d"Battery"* - dta d" if" - dta d" " - .align 40 - .align 40 - dta "it has it. This weapon remains active" - .align 40 - dta "until the end of the round and is" - .align 40 - dta "indicated by the ""computer"" symbol" - .align 40 - dta "before the name of the active defensive" - .align 40 - dta "weapon in the status line. It is the" - .align 40 - dta "second defensive weapon that does not" - .align 40 - dta "deactivate other defensive weapons when" - .align 40 - dta "used." - .align 40 - dta d"* " - dta d"Spy Hard"* - dta d" - Help for the forgetful" - dta d" " - .align 40 - .align 40 - dta ":) . When activated, it shows a preview" - .align 40 - dta "of information about the next opponents" - .align 40 - dta "one by one. Left/Right - changes the" - .align 40 - dta """spied"" tank. Fire/Space/Return/Esc -" - .align 40 - dta "ends the ""spying"". This is the last" - .align 40 - dta "defensive weapon, which does not" - .align 40 - dta "deactivate other defensive weapons when" - .align 40 - dta "used." - .align 40 - .align 40 - dta "Due to the different warhead tracking" - dta d"system of " - dta d"MIRV"* - dta d" weapons, the " - dta d"Bouncy"* - dta d" " - .align 40 - dta d"Castle" - dta d" and "* - dta d"Mag Deflector" - dta d" defensive"* - dta d" " - .align 40 - .align 40 - dta "weapons only use the shielding function" - .align 40 - dta "when hit by these weapons. In addition," - dta d"MIRV"* - dta d" warheads do not bounce or fly" - dta d" " - .align 40 - .align 40 - dta "through sidewalls when falling" - .align 40 - .align 40 - dta "None of the shields protect against" - dta d"Napalm"* - dta d". " - dta d"Bouncy Castle"* - dta d" or " - dta d"Mag"* - dta d" " - .align 40 - dta d"Deflector" - dta d" on a direct hit will deflect"* - dta d" " - .align 40 - .align 40 - dta "it or carry it past, but just hit very" - .align 40 - dta "close to a tank and its shield will not" - .align 40 - dta "save it." - .align 40 - dta d"White Flag"* - dta d", " - dta d"Hovercraft"* - dta d" and" - dta d" " - .align 40 - dta d"Nuclear Winter"* - dta d" weapons, when" - dta d" " - .align 40 - .align 40 - dta "selected, require activation, this is" - .align 40 - dta "accomplished by ""firing a shot"" after" - .align 40 - dta "the selection of that weapon. Of course," - .align 40 - dta "the shot of the offensive weapon is then" - .align 40 - dta "not fired, but only the selected" - .align 40 - dta "defensive weapon is activated." - .align 40 - .align 40 - dta "You can only have one defensive weapon" - dta d"active at a time (except " - dta d"Long"* - dta d" " - .align 40 - dta d"Schlong" - dta d" of course :) ). You can always"* - dta d" " - .align 40 - .align 40 - dta "change the decision and activate another" - dta d"defensive weapon or deactivate " - dta d"White"* - dta d" " - .align 40 - dta d"Flag" - dta d" before firing."* - dta d" " - .align 40 - .align 40 - .align 40 - dta "And of course, activating a weapon when" - .align 40 - dta "you already have some other weapon" - .align 40 - dta "activated causes the loss of the" - .align 40 - dta "previous one (no returns :) )." - .align 40 - .align 40 - dta " 7. ""Other"" weapons:" - .align 40 - dta "---------------------" - .align 40 - dta d"* " - dta d"Best F...g Gifts"* - dta d" - this is a 'loot" - dta d" " - .align 40 - .align 40 - dta "box', not a weapon per se. Buying it" - .align 40 - dta "draws one of the offensive or (rarely)" - .align 40 - dta "defensive weapons and adds it to the" - .align 40 - dta "player's arsenal. It is a lottery in" - .align 40 - dta "which you can lose (if you draw a weapon" - dta d"cheaper than the " - dta d"Best F...g Gifts"* - dta d" " - .align 40 - .align 40 - dta "price) but also gain. You can get a" - .align 40 - dta "weapon otherwise not affordable at all" - .align 40 - .align 40 - dta " 8. AI opponents:" - .align 40 - dta "------------------" - .align 40 - .align 40 - dta "The game has 8 difficulty levels of" - .align 40 - dta "computer-controlled opponents. Or" - .align 40 - dta "actually 7 different ones and one" - .align 40 - dta """surprise"". Each has its own way of" - .align 40 - dta "buying defensive and offensive weapons" - .align 40 - dta "and a different method of target" - .align 40 - dta "selection and targeting itself, as well" - .align 40 - dta "as weapon selection. They are arranged" - .align 40 - dta "in the list according to increasing" - .align 40 - dta """skills"":" - .align 40 - dta d"* " - dta d"Moron"* - dta d" - the dumbest of opponents" - dta d" " - .align 40 - .align 40 - dta "(which does not mean the safest). Shoots" - .align 40 - dta "completely at random using only one" - dta d"weapon - " - dta d"Baby Missile"* - dta d". He doesn't" - dta d" " - .align 40 - .align 40 - dta "buy anything and doesn't know how to use" - .align 40 - dta "defensive weapons." - .align 40 - dta d"* " - dta d"Shooter"* - dta d" - This opponent does not" - dta d" " - .align 40 - .align 40 - dta "shoot blindly. He chooses one direction" - .align 40 - dta "for himself. Based on his own position -" - .align 40 - dta "he shoots in the direction from which" - .align 40 - dta "there is more space assuming that this" - .align 40 - dta "is where the other tanks are. He starts" - .align 40 - dta "firing from a high angle and shot after" - .align 40 - dta "shot changes this angle to a lower and" - .align 40 - dta "lower angle trying to fire the entire" - .align 40 - dta "area on the chosen side. He always fires" - .align 40 - dta "with the best weapon he has (the highest" - .align 40 - dta "on the list of weapons he has - that is," - .align 40 - dta "not necessarily the best). He does not" - .align 40 - dta "use defensive weapons even though he" - .align 40 - dta "buys them" - .align 40 - dta d"* " - dta d"Poolshark"* - dta d" - When attacking, he" - dta d" " - .align 40 - .align 40 - dta "sets the nearest tank as his target," - .align 40 - dta "then selects the angle of the shot, and" - .align 40 - dta "tries to select its strength by drawing" - .align 40 - dta "it from the selected range. He always" - .align 40 - dta "shoots with the best weapon he has. He" - .align 40 - dta "uses defensive weapons. With a" - .align 40 - dta "probability of 1:3, he activates the" - .align 40 - dta "best defensive weapon he owns (the" - .align 40 - dta "highest on the list of weapons he owns -" - .align 40 - dta "that is, not necessarily the best)" - .align 40 - dta "before firing. If his energy level drops" - dta d"below 30 units - he uses " - dta d"Battery"* - dta d" (of" - dta d" " - .align 40 - .align 40 - dta "course, if he bought it before), if the" - .align 40 - dta "energy drops below 5 and he has no" - dta d"Battery"* - dta d" he surrenders - " - dta d"White"* - dta d" " - .align 40 - dta d"Flag" - dta d". At the beginning of the round he"* - dta d" " - .align 40 - .align 40 - dta "makes 1 attemp to buy defensive weapons" - .align 40 - dta "and 6 offensive weapons." - .align 40 - dta d"* " - dta d"Tosser"* - dta d" - When attacking, he acts" - dta d" " - .align 40 - dta d"exactly like " - dta d"Poolshark"* - dta d" however, he" - dta d" " - .align 40 - .align 40 - dta "may have a ""better"" weapon inventory due" - .align 40 - dta "to a different purchase tactic. He" - .align 40 - dta "always activates the best defensive" - .align 40 - dta "weapon he has before shooting. And just" - dta d"like " - dta d"Poolshark"* - dta d" he uses " - dta d"Battery"* - dta d" " - .align 40 - dta d"and " - dta d"White Flag"* - dta d". At the beginning of" - dta d" " - .align 40 - .align 40 - dta "the round, he assesses how much money he" - .align 40 - dta "has and depending on that, he makes" - .align 40 - dta "(money/5100) attempts to buy defensive" - .align 40 - dta "weapons and then checks again how much" - .align 40 - dta "money he has left and makes (money/1250)" - .align 40 - dta "attempts to buy offensive weapons." - .align 40 - dta d"* " - dta d"Chooser"* - dta d" - Takes as a target the" - dta d" " - .align 40 - .align 40 - dta "weakest opponent (with the least amount" - .align 40 - dta "of energy) and aims very precisely, but" - .align 40 - dta "before the shot the energy of the shot" - .align 40 - dta "is modified by the parameter of luck :)" - .align 40 - dta ", that is, despite the precise aiming it" - .align 40 - dta "does not always hit. He shoots with the" - .align 40 - dta "best weapon he has unless the target is" - .align 40 - dta "close. Then he changes his weapon to" - dta d"Baby Missile"* - dta d" to avoid hitting" - dta d" " - .align 40 - .align 40 - dta "himself. He always activates the best" - .align 40 - dta "defensive weapon he has before shooting" - dta d"and, like " - dta d"Poolshark"* - dta d", uses" - dta d" " - .align 40 - dta d"Battery"* - dta d" and " - dta d"White Flag"* - dta d". He" - dta d" " - .align 40 - dta d"purchases just like " - dta d"Tosser"* - dta d"." - dta d" " - .align 40 - .align 40 - dta d"* " - dta d"Spoiler"* - dta d" - He shoots exactly like" - dta d" " - .align 40 - dta d"Chooser"* - dta d" except that he has more luck" - dta d" " - .align 40 - .align 40 - dta ":) , which means that even if he doesn't" - .align 40 - dta "hit the target of his choice, it can be" - dta d"a more precise shot than " - dta d"Chooser"* - dta d". If" - dta d" " - .align 40 - .align 40 - dta "he is unable to hit his chosen target," - .align 40 - dta "he tries to choose another target that" - .align 40 - dta "he can accurately hit. He uses defensive" - dta d"weapons exactly like " - dta d"Chooser"* - dta d". At the" - dta d" " - .align 40 - .align 40 - dta "beginning of the round, he assesses how" - .align 40 - dta "much money he has and depending on that," - .align 40 - dta "he makes (money/5100) attempts to buy" - .align 40 - dta "defensive weapons and then checks again" - .align 40 - dta "how much money he has left and makes" - .align 40 - dta "(money/320) attempts to buy offensive" - .align 40 - dta "weapons. When buying defensive weapons," - .align 40 - dta "he buys only strong and precise weapons" - .align 40 - dta "- that is, weapons that won't" - .align 40 - dta "accidentally hurt him." - .align 40 - dta d"* " - dta d"Cyborg"* - dta d" - Takes aim at the weakest" - dta d" " - .align 40 - .align 40 - dta "opponent (with the least amount of" - .align 40 - dta "energy) but prefers human-controlled" - .align 40 - dta "opponents. If he is unable to hit his" - .align 40 - dta "chosen target, he tries to choose" - .align 40 - dta "another target that he can accurately" - .align 40 - dta "hit. Aims very accurately and in the" - .align 40 - dta "vast majority of cases hits on the first" - .align 40 - dta "shot. He fires the shot with the best" - .align 40 - dta "weapon he has unless the target is" - .align 40 - dta "close. Then he changes his weapon to" - dta d"Baby Missile"* - dta d" to avoid hitting" - dta d" " - .align 40 - .align 40 - dta "himself. He uses defensive weapons" - dta d"exactly like " - dta d"Chooser"* - dta d" but if he has" - dta d" " - .align 40 - dta d"more than 2 pieces of " - dta d"Battery"* - dta d" he" - dta d" " - .align 40 - .align 40 - dta "uses them if the energy decreases below" - .align 40 - dta "60 units.. He shops exactly like" - dta d"Spoiler"* - dta d"." - dta d" " - .align 40 - .align 40 - dta d"* " - dta d"Unknown"* - dta d" - Before firing each shot," - dta d" " - .align 40 - .align 40 - dta "he randomly chooses a course of action" - dta d"from " - dta d"Poolshark"* - dta d" to " - dta d"Cyborg"* - dta d" and" - dta d" " - .align 40 - .align 40 - dta "applies his tactics. However, the" - .align 40 - dta "tactics of weapon purchases are always" - dta d"identical to " - dta d"Tosser"* - dta d"." - dta d" " - .align 40 - .align 40 - .align 40 - dta "Trying to buy a weapon (offensive or" - .align 40 - dta "defensive) is as follows:" - .align 40 - dta "First, one of the weapons is drawn" - .align 40 - dta "(among all possible offensive or" - .align 40 - dta "defensive weapons). Then a check is" - .align 40 - dta "performed to see if the drawn weapon is" - .align 40 - dta "in the list of weapons possible for" - .align 40 - dta "purchase by the tank. If not, no weapon" - .align 40 - dta "is bought in this trial, and if so, its" - .align 40 - dta "price is checked. If the tank has that" - .align 40 - dta "much money, the weapon is bought," - .align 40 - dta "otherwise the trial ends without making" - .align 40 - dta "a purchase." - .align 40 - dta d"Weapons purchased by: " - dta d"Shooter"* - dta d"," - dta d" " - .align 40 - dta d"Poolshark"* - dta d", " - dta d"Tosser"* - dta d" and" - dta d" " - .align 40 - dta d"Chooser"* - dta d":" - dta d" " - .align 40 - .align 40 - dta "Offensive weapons:" - .align 40 - dta $5a, d" Missile" - .align 40 - dta $5a, d" Baby Nuke" - .align 40 - dta $5a, d" Nuke" - .align 40 - dta $5a, d" LeapFrog" - .align 40 - dta $5a, d" Funky Bomb" - .align 40 - dta $5a, d" MIRV" - .align 40 - dta $5a, d" Death's Head" - .align 40 - dta $5a, d" Napalm" - .align 40 - dta $5a, d" Hot Napalm" - .align 40 - dta $5a, d" Baby Roller" - .align 40 - dta $5a, d" Roller" - .align 40 - dta $5a, d" Heavy Roller" - .align 40 - .align 40 - dta "Defensive weapons:" - .align 40 - dta $5a, d" Battery" - .align 40 - dta $5a, d" Parachute" - .align 40 - dta $5a, d" Strong Parachute" - .align 40 - dta $5a, d" Mag Deflector" - .align 40 - dta $5a, d" Shield" - .align 40 - dta $5a, d" Heavy Shield" - .align 40 - dta $5a, d" Force Shield" - .align 40 - dta $5a, d" Bouncy Castle" - .align 40 - dta " " - dta d"Weapons purchased by: " - dta d"Spoiler"* - dta d" and" - dta d" " - .align 40 - dta d"Cyborg"* - dta d":" - dta d" " - .align 40 - .align 40 - dta "Offensive weapons:" - .align 40 - dta $5a, d" Missile" - .align 40 - dta $5a, d" Baby Nuke" - .align 40 - dta $5a, d" Nuke" - .align 40 - dta $5a, d" Hot Napalm" - .align 40 - .align 40 - dta "Defensive weapons:" - .align 40 - dta $5a, d" Battery" - .align 40 - dta $5a, d" Strong Parachute" - .align 40 - dta $5a, d" Mag Deflector" - .align 40 - dta $5a, d" Heavy Shield" - .align 40 - dta $5a, d" Force Shield" - .align 40 - dta $5a, d" Bouncy Castle" - .align 40 - .align 40 diff --git a/constants.asm b/constants.asm index fe98e90..4dac11d 100644 --- a/constants.asm +++ b/constants.asm @@ -250,7 +250,7 @@ WeaponPriceH ; weapons prices (tables with prices of weapons) .by >price_Riot_Blast .by >price_Riot_Bomb .by >price_Heavy_Riot_Bomb - .by >price_Baby_Digger + .by >price_Propaganda .by >price_Digger .by >price_Heavy_Digger .by >price_Sandhog @@ -299,7 +299,7 @@ WeaponPriceL .by fjKKHdNOwtb2GwkDigediUwuuYVL1 z9Wx+y;C+Jz577@DcK-vz<3>FA(8G^BIx_yTQU4e{W^6*@xbYJvPI~-_$?TI;o-#cB z%+#c5(`O_bXQs@WJ!kH`)cGd!f@hywnD+b&=@}WBi!6&@T(UH4+42=Ht^8jS-v1ZM z{Uy@<3GMzM-rrCC$tmpLsP`xEXBILSEq?LOgf)`P8jZ#;wno!SbFbtYh_2BL(PM-U zI<=sANOM;Y=wdZv6EqsAL!%i>MozF2AgUQS`N=7oyWD9sf7XsP&N}hAg_tDi>CX&e zNt8-yQ8)>D^i)b~6X{zVr4q}-fl1cCKuTqtZ=keL%C41C-d!s219p_p_{MR6Uowuv zqA8UNyG#6JF5<9k5uAVFR=xZe1~-Lng4M8HW~2Ix-E8u!Y}0?Soc~}rDwXQ*3%6wH zUBW?~<{H##uWYZNd)MthTWnBJ(C9Hi_gL*++US}Q^q&nkbJ1PGl9z=12RC8=mww`> z7$U)ccNSu)a23i2e{oVu*A4Aq-8)rI2C?|-@>s^_vJCNAit6%OGLFFCy_axBb$PFE z6h-;GnDQ?L_1r>gsNW)de%v{Zu=hk)5TPhv7zw)@M=)?d0Z6oe+0v!US1eun($f9= zS1w(;YU#@>US7Q>d+q*pIqS&~M8hHMVDYI=+@u_=P?I9?QThQCGKj9!lMhSuc+yS{ zp2iqa=;*`^$#_##bRtbzD23j*1?>u5$%5i$Dv(Ol8y(3MHO(gb)>cf~ZL+~AsY1Of z<_Sv8(6+XcYzi@vRc=u-=!l-8a41m5Mhq?-j6z3gCI(TITE{VE4nl9rdi^UXm5xTo z29y)GJW}GMsH8(WW0HrWEJGBRhKQ7mNeupdVS9uF+M^D1<*-M zGFm}ePZ3EHDK)i))B_ovq$qsKWZ*!i*E#I!&80%AqtxiAJ5?t(r%bXKZ5~@kv)(wK zo=hbg3zF60YNOs5$gwgguEeNrafpXRTZ*G@i&8yFJzbNHj1rA_eg__^gFfc)e(g0XQo_Z$j%K5*nL3%| zG$t`g)Jp0%3cAxzbGRK8p2T9Rge477w}mR8^t7H%~R2v=AQ|v2K94T8&jvQ(ntWN1LmLv~W4xUspPCZ9v(&KSB z@rZbwjbf=-4&4y|PKTq-;e}R2XZdN;-`3c6^T&44>3Gl4dSES*m0|&-pPv92_i*W@RG`?AH1|gq=|K!%F8cFqcQU{@dL4mQ~(|^ z-XpeqQzi9zJ*?4GXR321i^-z#@(fXi2j<@F_``9?K|83DL>si_U@Q#u1?PQ~uZZc# zZh*u9orR(iJCztX!|{}3(c3Sd6dkatb#={kM~ugelxOlv?@Ey^A@;T)ebHc;-(X{l z%8`o4;}GGnF99}=$ZIbec9vtGYtW-F?&fm$?1e0rO z@`x=?@kag0dMH?QUJ@^fMyF8{c)J+o^?2IbTU%OMZ~feKF|_=Wq%0`GSNfGFiY=-Z zfV-vr5&_kvOD(XjKLbnFfkj&mjM0dSD5jt^)robUOCo#OGF!&sVvXQfkYYatpUkF)dn?o54KJ@^B(i;eIe z0-Nwhn0DfiK%3acw$&5w^0l?Mdpus4(50INI&6r8h zdBiIJNMpMZ8o}d9A<8=@vi05;kH<;6FN&td4lJ;z(bEX6K-AQdq>?0ry$(q+YD96$ zL`Bd>Ww^32Vo}PXl+r2UbQXc5r39J*YUALDQA)OboXN#UeMYX?yvONmtV6?~v<_)RM5tk&%8oH1k0P*5Hib~+R4(E%v;6=GAJw;8NR zEhHGg%SC7cD?m6Y6;FHG#NWR|Of@-7<;E&8)te|*H&ZQ$T6&7;2pgXSguVm~7GD{v z^4A-DWoLh0uCE>y>MP%`_LbHCGJ#5v8i*JK?r2-3(jvVnYFU(A`f3gJwKw?NrDTMB zKN4X~={IuzNK=zZOsI1)#Xah|Qh>qF!7tvOlzoPNIL4$EPXS6|t^PXqP_9MYg;%nvwoyX$(tHyKlEN zH8s`OhhDt+v1QYNgqD_{^CFxh#o4h}W38J&~W;rX?i=J{q0fI=6<%MtrO!jSxYM`>{KPL8`q>jR_kqV=(BQdNb zMKG2@1H-@#_>ull{3VQd#dfxxGy|MYsqnqL{&3^0cRHQ0A}S%FzXe@X{ee&ttEi@n zDwM29-THY`C~0UX5$onznU8%IeUJ%4)r<8K1@CXrEU-F7Z?o3}4c~zb?Bb-=f$7YbFt< zGomISM0h&@omOiqHR*e*m9ln^x3Q{uuH<{fO)!V3pMXhvd%HMa);6?C955!t+Uf~Hfr z)UGdaea>lu+OoQ}m6Qp9j#eL}9GN;iDzs-P)&ncj)Z~}b$Ip5ZRz)n=<1sa-bP(Ac z6>Smkh>lkOE;|T2t?$njtz;k2ry!r0;&9j<<&H8ub$FVKo1JVqTblYN*5@YT$X)Ql zy~u9RM4}AdPVbqHcij~~K+vAUO-@9RR(C@~H8yaWQW@N{XDCbNdcB)AZ3-puUe)Q- zYuCQ~G9`&6vf>!cg$vgJCof(4`PbXG+p2R_p`lSxQPMn2ZSCmr659X)0v1)UO0J}3 zGzpz>F`v|ACn9hLJT*#j&k4(Xjd&R1vy*k^h>hM)yq4yYKh&A(%%I>~NMkPl>16Phr`da4n*ic02?mk0UR4Lv?kv#bN>N$T&*cGXp{hClp2dA~j`^Y7`Y` z#z*|xwba_R?d|Mc%atq`=14(Mw$9%!^?ThG3(WL_7Sh64FE*7=ZS}9|vGr%zB?+eC zQAC;?sL2TFAc@Gf!?MKAMIdc>+L}dVUM)$UnaBWAM3b>9`P)=i$LIg!YCNMJK1H9Y zcQ{JhOHV^&zrp%F<1`QgTNh+XUqlj^dvXvTg|^t^XmM*t!DL3eX2TPd_{RF0Y^FVT&U7Xv0wy~BHuYR&)z!Tdjc<8_HOg|LZ!6aIwA!;Rpy@FOc$FQs)7i>Sp1E+<%qX|B8 z2?vv}U_LJK4>5`O%TlNKG8BfL%2js;*0liuhe>TZhUh_z0#Hv( zj}?EGtgsyoB#`W`Zg97Dctu~%;!_Qiz?g{rWLwr-D0e7jVX@+&q2&m4Dme^>sMbp` z0=)H3Bzj;PMns7aCT8M9NyU>DiBxNVPLzLIMer&>6x&zbEDk|W6a#1d-B=>7|Bck|#%wnN+Qer5=6-&`>FR9@n;Kid* zD9|ZW1a^x-88fj!DkXaozm-N&a=}+hNGPhm*d7(oLl;i6rnW3fYpbR2LPvi#Rm za3p{;4{pn@Zj@#svNPmErgz-C&9am(C8=jb#H0uu+jq0r3!L6o=p9DE0;dy?4hFO(QwQDzG93S6eJN z3=)W8CvKKLs6us@$`F!BP=aSkU3BjIm`)Sbj~-1?2?|{6Lt`C8O=Li#1+SoRX=yA> z@*c?8W8jpanc7g*rcD#xd`{(;K-zgrArQ$68evrA1j3$yJfs1S<=yI2=d&H_^$xwm zjNKP#32G`hr6=ojUIH5AjnFsLlOoQ^x=s30A!&?&=giogNkPYsKi zEGv=K{`fFu!R5q&@!iQh%F-cLH;}b3J4qEF5NK5>GVMA4@1Jf%l7sY) z=%8sqJIXJ!^&mbDHU!Ig_mY1eY=WlcswfeG(JRWOO$3z6z9YEF$XA{psAhs>l;Wqx z+9A`;3UW<>=oUFTC`>8gP;Dg1UP2Do6YEdng~bP4l-{ItBEc+eD}|mq#J1Awjkw=x zvw4|D$93BwolO^Lfq_zrdtFYtN7`f@VAMv3jO*yAnsaiBXk2^fR?H8UMBD9-q(sD6 zDq;R3+HoNfUXvrWWLm+P^7>n$BHQuM7SQ$9H+o*f0h+AOH=;Aq`3G)DU{?)sUwfk^ zrXiibL_rkLk3DnS+u!T$Ax_>9&Wuw8veCoKQydXf!h>Es|3-ZCN@6!7t+)}bcP2ErDrGX2)~K*M5l|K0QZa5zf>!FA?*mS`8>Zd&>5MFjGfO4b*M z$Cz^4P+MqoL85Kq!NeU*1g-+c7ml|D&^@Tw@ryw10}J|##T{=#p5qr2JlEVrr=CWU78}T_ zLSjujxdsWw0J7~6n;|=_A_%)X5aI}2I1pv^tBS#iC^x}U!V_SJR#EIJ{&I`tcrER% z$ys9kcfTyC=#H%J`}$XP)c0^|wxi;DTu#pF_g2TH$B9k#x5ON$N&FBqz}CglVoQS8 zbL!$P@l-SRy_=>sfja(Ub^H4E<Q+GK%AcfjX}zbd zyv=!C48*e~m5M4i4#nv(#`v$q8_CVd-KMo+tI5W73V>zEd)$T?DGrCn=wcMm(M2XN z6zMhfdz*WM+O2kb z+<96R^&EobO^yx3f6EB(Nxut2NSg1Bgk0b%lM zL;=?B%_N#ssf%0kWD1#rDjF53_@IDds^(P2O-ZCETcXdx6K#w%Pt62|N9tloLNVmQ zp?VTA;|p!?QrAZZK9u}Ww_NHE%0q=DCR26jNv0BY>ImgH*pn_PG4W5X>55jd3DrOY zaL3F2XAFHHF(8WC`_RCNiWr$pZ2F&DKU&9cu5Y|<`@~i}vAd(YKu1SY^IB%#n)btZ z%5?pO9~b`kzHLlXghNr>jT(5XAut(Yy`S|kTsx5(rI9Hu#Dwroz#_dV-(?l+JKvxw zipT?y^op{BdRRwEZ8{*s`MtkyKx?St5hZ@U0Xii$jg*k`F3_qFc|hN|1`DmS04a+l z9X&PyZ+|YK3W<~k`^m7BS0$%&rKVg74_j?XOhnxs+1Emv6XN1XK{br{hg7oFQbARl zv!stuaz+DmXi1(fftF+hp`nl&Q5VoNJVFAJ1+j^25-G{kL3OZHD;_v;fTnkk`&WFw z?6VWk?0o?@aiMoY?`Rw1K6&)J7vGs95dgACA4C!CXhU@DAaXR|&m9jjd1w^glFnAITTfDEuesVH0h(E& zN|is&DEPz&7#~8I%8Jy=a}hOAhl1iFeR4;HCnd3x#88u}Rdpx8*IzM9&(1V@kgPer zt}rJO8pKXY0A+P^^usYbvB73@CnY5zf0s;%5Erq)*!deQ*z0f)!;&VS+=+?n*ZBY` zlLS6_RjNWi_{5Eh@`+nf!2*E<9qwui;Ytz{ug=>YA{BvFzoa4l#U(?fwbc=25wrDK z)SZBKjY=j{mAsXljNgCo58yG*wB+V(tWGpnlpMWp02xm-GgLo6s2Rc~xotM{J)YTz zjl!8D3NpK~y%6yd$jjT|_O|-iB;vAcLKI6VlP+YPq*N&KKl=ISD?ea`rFOT!Bw~|( zBDV9u_Dw`&QYX@4M@k^PlX^#hw6Y6D*l__aS3e}8lMW(1s_zq#3BVAf$0xW*Df`^k z+|u6CCMW+hJH-M-w2YzkXrw(&HCL)YIBKT3B@G{olUx;&+dJ9f!rfN8r16 zV4Zhi|NmtSJLC2|h#`So{vk=k|2yE^{9z|tk$~I|;eMgLorrtuAq>d-@XIg1?Ec?z z{G|upCMW9h1L^IgfbvV`1jJei;kx|cZ`mpoC3 zqwMO{1P@TIMi3o6cI?>x2pf_jePI*A5fBl163~H0QcXzsM_d=gkM$|yp0}UbyM?dM zSBE?il1v?a#r5mS7uwnN>qkpWu9K?xj120U&c7cW&X$Q$ZraS)UlWq7s#-yA?dP(G zpAC0+tQIJ%w$@73T0fBqTI*SvkZ(OlzCM--GTXG`c|rg)@2YKo@hqWwD<#`T%P?G^ zt;$-V8ee5Pm%DpeH#jB-k<6xw z1B<9H&g+o362ik}W^TV#UHg}RLO5xNa0wq+DVcqLBDY@{Mp}Yu1@P-{iSxB|O%+t+ zGsGpdbPm~gAm1jiZ<1!YODH9!%GEXA_aSsIK1{wsT-yR%0$se^_N>(5vIe`h$y{48 zQ6LSpOGp7;VYZb9{lf5rqg-NDU)M#Tw}nJ}jO?zJNpJ5`MgQ8pIq;x`Oy+`tFm2kBcRi zeZ(#m@3+bP^8#F3!-)a}1!?GhR~J~9mwcljwcNEe!o}z6BUsgE~R_CbyR-Z*=oO`c~tRKUFn`!xz=#z^j z`a!kZ?jfcwF0ysXsdR1a?h@q1IRvewXCbh-yKNGwLJc9Vt*}6O@ob4I(HSeuD1Oqm zhSZ@M+O-wy9#BmA$3yU8#Yr~5#>sSrw6>jE`p;SzO{AQ6uav@If-tBSel{$$Rwp;? zpG8cOxDI8N)e4MNUMq}+w_Yp4P#8O9?d^hAA!R->ORcq+OORP<5*qrrtbvdL>z7P+S^!HI^RC zf06YF`>pIO4<)OI2M1|}Q&01fw*@I2=bQn*sV!d-$1S$}VO>2FQkOz6gN zHW{Xla4}p4zeH{lTw9|nymLc+A-J}%Jp%8Fb~Dl8PcsT!E#{+)hPjX5w`_{yS~BFl zv1~}xN6G0nOMabeWZ7!jkkFb?cR)#H;#}9@vV564nmNmlSUy~PEx9b{iy;YS@W(U1 z@Jp7bcU!X>CKw`Ab9LsLzA&~mCw^WYPSXv1$BM{^Ycpea>qcE$ZC?#D4xBOt>676c zKjfwP^Z>r#rT?M7<KX)ivT zag(RBTWJg5ZS79B8w>K8SjR|K~@E zmRXZ#Ym_7*E1yDy4k1EELujE->=m6%=!aNIf)d}76GQLdd#~@u4o(;HxcNdDXDX() z9oB9;qGdiGBbG#nal-D$WFn_w?Sh&BUlHO8 zV!ll-lpB^lXRgt@!(lR`YNFA%^tl?9RJh&)Qk~}9NnQV=N3;d`Ck+cD7oZk&^sukC zz<%=VwF((`&G04v+4_Ns%mw&pSwH-t{e%I-m&DLcl0p){2gJ8u!OoDk@NU<}%&N~X1M|?AJAMbn^l3PXKj%}=#Kfe{(^4D{7C!!j2_$)yD5X>mSPT*k$yOn zH1_IhEStr>S(P)3JH!l5xAhVfJLVgfJ}bOr-4P;8w!Ru7d}EzWzUG8fCZ=$Om5--z zI}T+YFC^5TwM7Wj4!(u$(LZdDgu1HNY#T5T3ISZ9M0Up(<_JI3(wDC0CtF6-AMl)I ztRm{UvLk$oXyXD8ovd7?HE_?Nd`){ett7tc0nMGVSw##)LNh_5khZ$(8}yDs!?hE-4FlnQul#p;BU#1shts^P)bO<-@}gC0bY8n^zgiRIQh>9osGdVr zrw{_Aiv4P2hMYrpp~`+W{zj0$G5!V`b!dvr@HGMFr<$ryH8paV5LUO*$iBmc302U57jl_PmqelNIPWBx#T0k7kF(5v`C+??=LbN6nK-U_zY zy-*xjg`t^MBl%t2V{{>Zk?V=~&)i_PaPHnxZGrA;S*i9y;aoz~TB^0tm8IGpOA2(Y zW~52T9{jmYekQXzlZ1(~r zZL@^gsAHBeBsLCY2A`$u9mQ|k*gGgVBYm=sc3_c?Zyb)D?1zngyCZ&3+!8ETmfEGj zntf7P$m=!@MZ0Z4S>fCrndv2;kljsg_?>@dQ@_5iBnetXp<*TTSSF6X#YzyU($tKr zP%`!WrcJSZ9?Qgrk7NfiG#c5+`%EvR>lA40HeBYpLOfaG$2K*KF&%AyxY{OxT{{ zQ`p`^$o8HtRB?rftvg_Z=sLn*E{N&xT|P zpVGNG_EOa6qHcc)ohwNfKf)U2pOF5S2^;?Ngmu=)UK5s{+YoPGewEz8}ZNY5gq z_nZpZxw(Rh%OuK~=aQXEJvZ-Mrt3FB{=lEwuFZkc=c4DPe{fgBEkRC3^8E{Y&_D2x z6f%apn0$kzb(nKQ<0FQeulX9tT}#Di!imDy8E>C=Bbb{9rc#lM5VQvi`zuC4NBoC{ zvA}=5FdA?5jwrnKJEHWR$jE5>!6)hak%HqC(nSOuUx)B$;8*PU$DsNw`vF{45jP_$ zDU)ek!=RT@YoOD}44RvVh?vQYpZ*!>5gY@69!Vy_E;j_fgvB^0wTBQ41Ekn_P}9YT{fs+| zgoBR@gAr6`Yl=*oB7+7NfAiITeQ_+LxH;ThZXTB^iDj>HDajJc4X63n_yPPAyhi=X zDh$E^Fg~AuFrcgVvEJj>y8D2i5&V52*Hcq45*$BGN^GfBUs)dIW#z zwJBk`S=>ME`)lSFDuuV=f7yv1jIdOL1qqH)WY&NeJ z^^Eyx20V2aj=CQeuRin<^ErF|yzUMxhSYF8Kg)d1KUNgYezV)KZe^8Sjm>dMFt_M< z=9A)%Ofz$Rw-mJ1C6%|?$(7CQWb-qY*_Kqx3zkKeLzbs4b8>&my^;GgzAkR~YQwi1 z4(6BUf4|}ShJSA`=dH}k$;-`Kke`;HkzbX+JO8VKhb_A~Sp6>MYB_?HKwV99%VB@# zb+`F%iZoBn-zao*-4c3nN1)_gt|pkpwDGtI)hWWibb@i(5|S9V;BtI!Z`SG@iF z4JCIT-uo}+@>ZO@wStyA!ldsOl(@cFz>nA;t4`m|EZB&NjFUI*pNLzUL;GVVEZU91 z!DN&Wj0y8Mo-1)}hfV)z-wQYUX15t(?+9}ymqdyfe;7HF8)=`DF_D{7h`_|0;e!vv z(r5U%1HF2k$u$#R?Q^&+`&@3BeIAnARGf_F^Uod_fFQl`Kqmb@|J#8Vh6GPNuPZkb znuZaZga}s)q`M__1Fc274Lvsr{UB=+sqwkC=)Qk<1bY^u&NAWz{25!UYQk!p3c;4Y zVKdT?^9cug_FlC6*d@&tM38RrRo`fCD2l$(RLH;oL1Xxh&pJ4O?#1ss7>A)}4-QFv zf1MBlx9EYbBT8aGP(vLwR}Am%zSI{i@zEKiuNB*i&mM7IH49^W>@F$*=bh}bb|e~~b!a|o*WgprflCm>SA6W7&(Oc|E8d)f_n9|i zhF*CMYofF*MBp<+9d|h?_K_~URZMNPUEf&DbmxN)#begQLn92qQw_RJUGZ^h)pU(3 z0^8umG^QSr43{-XbPlJbb7|+}IO?ZtO>DlojM^<=hchqrb;Xdib{vPoGhrRdrHRgB_sixTfaO zia_si=+1kROf;O>3?%4wsYs{1Fc^hP{{2bK_s2GLnZlYX-R$H3>LbB9h!T8SdLsqjANN3qnykGn1?r z7iqYvJC_xkk|byJJ7Z@7%Vl1=7sP_s8A7(!>~Lx9v!4{X+3=lRXt2@w2Zto!kosgz zsB4nk(7r`F#Ad%D9aP7@A{|?MY?TfXD9AbYomXlGqWI&Lnz1MpTWiK(Ytx#53_+PU zwDDs~^wFPguG+4_&3z%n^fZcdBEVcB~cb{S+_E@$CzrInrqz|Cyr?KfN@CKFK>uQ-Xe5 zJZ!KwPLAtG_0geGOAIIqImB)97%PU5z?a-XI~3AVo3jr-qSe{xey;m&b2@PZp< z!vfq}ktE&6_c=D0cJmXDZJ@97A0HbXO5`MWxmD3x5U%CJ%5&&<`NHyn{T|LXBofy%SfyxbrGFK9G&x={wmQ z?qmwXuy-2v98QZ(iBmJ;>r4`ErQLx{h4f|N$Uc^0-ddw!v_B^!Ni!N*@?5^(R0DN7Km&h9N73a0H#YLtcK0?NibwgN%x+LBl-r_`#J z;+)iB*Z{iH7jyhI{Dd)%Px@!fWNfq~UBI@m3$eH+91i?3q0tp^Y%36RY69F()TrEA zDF*D>RTJV~Yv|aC3GNkAwu@uxsektE^~^5hP`iXM_?_!v(mS@Zx9Ok#qVs*d#porm z4Iv7#d+%$8n>#^LV(9)8eP|p1}yFldJiTj_a&qDSr z1z_?49EQ}_5CjgQ0{ITYeeHW|!rXGm1?iG+@cFbzZP}d-);X`Jl*yq^@`pzxsus4*``DmJO$}+=9Il3Y6^6}5j>gXI%<&_ zYlE%jPKMld5m%^Ot?-sLyJr|KA=ZZBN40ff_$4YQjHyeqMH#aA=yyiSynFaL@5IH_ zCE>>tdu>sA7{X=Ik}w>ri(U#dEZNU&*vnM!g^lq?-x<{JxxGL+%$ki5Nie=gFv@%w z4NG|UJJD0$*bB=A3!%jF8En2nKk26hGimN$(bpDzJk#BSs322#4o<<~$E3ctFLGz*8%0>Uu-DLMukQoPT=6=w^=I}mOZLax_uW{? zyHECxT?ppvZ)8w@_VOiBF6`|Zt}SAg@Qo*j4XR5rpmPO5DlGKl(iYhiOxFH;oF|_j z^KPvIdb*E~s2rt8eFK}{jLNufAMT5{*WOTawdZQF-7i7w&dQ;*g0HT;PZc!H!0kiJ zFBq5lMx?zq1LLlBj(gzL&~E$RAPg(HeMn&6I9F>(3i=G+>1`}HTwth$4^H@lKDEf`LCU+{P(AO>Qa53wtjxwJ)wN>vKCkNSI+MY zvBHzZ4bg^Y|{DWg#Lm%^#1`f CwGIOS delta 7892 zcmZu$3tSV&*3Ty471y_`!hI(sze`0oa&diyaGw1xz zW4Bo3yN=0fZGqD499%v`Q-3*7<&F@ygP&n^YvX0c!2;K>sh{IXHZL(M+xVwO>T9MM zt4HkcSe0`&J7;PNT3lZ@Vy#v^EvBoytNea;&K>xVR^{B!u753Rva)`u>AEY`QU7*H zmuzfDG%vACDUDDRseZN0DwRlDgkLR#tbJlj*Fe`JUcyEr?<6!l4;J>iU<|lmoFc{g zvY~lD8?VOlvBqn$yo2rGd)Q)j1RKUnP(X~uy<#r!h7vk?sgY_!9nt7f6fXq=@>+mY z??8w4BAh5>j&PHyn~rwr#h&m>XwNM4^K7(b7CM>a>^g~7Mxi+j`k8?R!n7ANhlkf9 z>kL#ln;#`%^~M${x)P1P$mIJF?y2vf<+EX8O)%|nMU^Sci!<)mDtRBan9<>g-MbXW zXXtoWGSU}+yL-%-hA4i4c`eOT<_$CwW|@=Jt*Z0fafjld;zFZK?PHYi4pQbKMIKtb z0tIEFZFr)2pkjOsTAGJ+tC1ZqG|$ZYA)85xs^VI04DE2YRnra`x{O;@4rI@)I%W%` zS^WVZ2{PuDx8V#|k$*N%v6d>m?R>1US&BSoqbCM#WVn zs3;x7&9tplkVAIIz*THT=Qe@tD4j)8aJ8r)4Eg6}1FLe{KEyG=jvNYmsNjdTxKxUi_!mnfqsRim z7Nf3AG$!3Cyed8Plxw$!%h2s;q{!mh+LP1{rOEYalA3vC_I2@>>B=Ox2eNl>RsCX_ z!B8 zKW98Q7;oG+i3-Kd`^M!>%6^U#{Z+m?T*2{?-N1_R2d3;LKJ|Hy%%p5S{;yrD{?f(H z1xYe3F<=&eJ)@;y!;Zc+ecJ3Q)8lT%**qk*Hv7<`k(>+&Pq8i_o&1HifxKE#MbZKMk zcyRRsY8YNqeT{0zar?WeB0QNNO)2V^^Xp~Uv*s7g=FqI%oaMRiFI_Bg3tgD&CK;cq zfA8JYyV&K>cB&uVb!cE382r>E{*EzR%1<+nk@Azs!9n+=V848;u}KP|XpvgBRm?#> zb2)Bmji@*^qT=wbEJrY;7eH15Zh*G^4mOVfBvM!o<_FNQ28zQ0hhvoOF|{r_dl(#0 zmc*3db%!UoUXEpBtl!|1heuNN_@~1f_*K-t+2d2Lr@9dtsO#b$I80F zd7&x%26h3jW|Jx;TdI^>s+Fi|q4uWAyM|W^uBbej`C5kxlhJz%(eY#y7XypC!9FfB z-7#eQ%-absN7BP z0)@%{B^4TM9rIwdAMnhN1C;sm1Xt@Qy1jN@E$Pbrcu+{kJTTuXgN9p>>dR(uNvRTc zsjYS%yU&(CkF7+ZDHdN|zHI@Mg+Kea|BT78tjRhpmfcoqs523^?^=9#$+iV8jYxP* zcu>Fd;0(xTr^wpo7iR$ugzCzg#1*!EfDYh*dOzwUo=`u5YQj17lc*v1llqrJ;}+?( zH^bAycxAYIWrKC4k||mQ&mGDt{r*VXDEe{jJo6~pHk^K(kA07Xj3zs>ksWF3OgSC% z?8zo6zi69DlnmApHnhm5N)J%YbmL`5d?Om7QuZ@h$@Wo#Cm+fd^X2Ahn!JYzZv1O( zENPB}W}~w?8k#-qJdnVNBcU33y!jp4_H5NUQ)D-_&BS!q%l|o)8tYUpSe*Fj1HJz4 zg5Ig3n-6#CIeil+bm_o8K=CpaY^QBIPCPndDwR^DKfY37-5zh;5P19yO&S{mQSuU} zj#0XbVeQfJ4i~`da35Pv{GkI%^VY!I9qt0vy5)e9aa(Nng!}jjpF0|n=eD>?|8%7S ztRzHcUa0_LS0~qL_YmZ;vrc$zhF6uGcNbr{PED$e1+vMF>x}I7=+P0Ccj2c>y>&aj-Y`^?yyV~kWyLV-*1(WFJ2JW2b+uBD*V=RNpik!a%ZV@D z8n_wGmbawB-3I&&w()q=ColWr_|lJ*MXDPXNrlAvk+MS~(2a73$61WO{bV@ZOYN-r zNC`bEYrl91#sG$$A9|(yp}jt067WZ8(bfo4KWC>0K~I= zDq;qp*p_^?MRF)#4MENU2nx>QJnLW&WopV)3v~c)lCzEu2LzF@8EhroZyL?+({P5= zzF-t-sbE-OPJ{?oov9GyaNjLfjOE8d88EY;8XUjPkg~spI4>FV@03PYhdVDR9j|B+ z9#**Uiy*`hgBl1yAYSB^5Y$z;pb3Un)vpyUuo)X|f4$ZP-N37lX$MU(KvV!h5+JG; zf|e7=Z;o&b)-GW>@UdfBx2RZi9c`O~Zyg&lh+_@l3ezB_P3Obe_bd`F&Avd8a|XK? z9`Y$emEfhHz7US%jYmCU=Vi3jFV6UhCxlX9;T6Xq2Jm#o05;add$QZ$;6OTn&wo0^ z|BG}7G}C!^V;`FLF#6FDDpg$keG2wI9zvz#SB}3uEIkFHii#({Q@|Q*Ye9Op4K!N` z8_NL3AU%Bec!UDrO0TQrimZFF1m20V5g`w==*|B|gQMY-VVpG8q2c-Ln^)GYkj zXF)@jWkhoC-%4i_xD~hFV-vOQnJTyxeHJ^POVclBk~?rK z1-O0$@A2@?y-(I8Bs{b+pm##bpC+vT-xD$$HNI~xZC)SA{k_|r{X4fV^498ZxkmqY zb{+E;E^myWGVs;L)P4|@Py%>kww%*X6(d!22hTk*32CwjimaKp--=x7#1m89`&mcxtpXWs?Aii9mB zz)TATbE%>N3!0h(cK}{;9m#0q5OS_#%d7Ngz%mPkC=#{*;SGQOh0h$2MuH%1PHawS zHV8lQGS)x@)Z5iHAA}qaguA?(NO;!qpm$^!jO(}}ZB`USxpSh6|3c|O^Vj+ctZgosWdo^&FJ2{)Y7Ql0qP$w2shdNKfh z{ZEnKNv8&=e`gA_Z^L0NaKlSZy%KyQliM3YIf%&-5!6VPLKsM8Vh+eq1FkUv5Z8dF zVEd_{ppX@uQJ6r+3oaIj=c7nQqZKqDz{ydK5@4dlUQL5t)hjHn))n}LCY{e6U=QHy z3hW`yB-~|;5?43*57aK_K69uE0-QGW0g#BJ%}KPGp+S?sYZ~ka$)bdv&&IO}Y$Dlg zE@u;5$j!-^&+rG$LHLzsTCrs%41xi$zjvBnaD7I7dEk`QjzMt67W5?7BB?X532>He z2GD{hxV>4c6q7d23e4myA^h|@{T5}$b5D<@g7Jr^$5D0o#OX0X)nKK2h?S5$ggZ`_ouw1H(Sv0{r;fAWUk1*cimyYs{9$7 z-i4nn@@xUj+XJbw_)GhAb>DgH$J`!!yvc<>5_xOS0b5@j+!_oz6V*B#ezRLgD!z;@ zZIl+Ney%xJf4FrrMQyR_IZm4RQM-6AfGg(tP7=IJK{S`Pnxq zDyZK2)l1YQo#=~r@8@Fknpzq>7IQlqY_b><^em8Vc!UTdrBG3W|;WKn?Z-}mWa@;*l&HDH`V$}-c;S}{Dgd6z9By&zdC+Y?a1+5F~udZ)jUs-Ud;QRG=*Z*t%q7B&_@;4N0NG?bzNH1tC*aew-ME))o z^t~8$9tK?EC7pVQ3{}2l(-UCAriYLr&OyFi^I84o?LRiu@mPk@pcE!TBEW-mqFm2{UjbKNwCsi@f0#UkCdA)jGIL*1#!w#5yA6}Nvq=Y?qnWP@_&25YVWvPcyQk@2C+^ap?^-jTMebhq4mm9CXt|DI+Z z;^ej<$`2Q{g;Ue8wJjv^)EeFstfxPCjsS5cCNkfCLXW5GytEw>T15y2VPZeF_CQJ`1B!!mS zg%zkj?zt2RTp}-z$x}u#eK$VC%_!SDwBQ5&uuzX~0Q5m22!f$1eG02@4VN*+g*tK1 zlHZT(Jl($u#Ocrv8$q{n=d zu1uxI;kU2!2er^&;k<4~SDqr(9?IcX&;*{s_iDn6a57Lz0@!}0P~HoqdL#3?jck*v zw!45{-HvXq7Vh*?o)QY)fAyW{8=1BS+72$mR!7@ks&#)_2jYF&KqfLrHvtnM3vPrc zGxdRoAiLf`U#}zdlmjXI3-v`HfbpA}tKk~PZL%ncPR;xVpJpPGUknu+u^~DM0p!={FP~N%aougZ4~q>?|1?xm`OCxO8B# z?g%<@k@4DW-zLyp+_WAx4ot2XIxJK{dC04f7*Df%32(}nryq!k^V$!^sqi71+-1)o^GI-(|FCdA#a@91p6wE1X{O9lEJ|18|d(FR2>|K%m~sNyKk*86wshz zMk1&l$a#*KlhmLj#V{5r@DJY(8K}sDvKk>D0mzp;M-I9+D$i%9{t9+a^PQkLP6Ad^)B1YfBBxohLXsiz>yytqX$HVln;mU9s3dT>bhsyiJ zpwW2bcP~*d^|OPAL<}4<2%MeNpxvP=;U52hRhq( zR5WDnbKu>`#uGoGv%4$aeU zch(@7Ck8$Yd~wvyD!n!~T!ExzC>m!h#L*;8bs~G6T9A|Zr}}F!72dV&x>1CrLb@C z8L;@Vu93+%G9f+}5t}rC2cz2os8QaV6o6TCrFOML2ImFt5V1feRi)R!Mu<-b{7!}J z5n`fh2Ao6|#GlnrI8Sz#)d4$K3;lQ#p7DbPbobs5IL~#bv4++WEb)M>!9}b_>GlH_ z{GmjpTd{M;&H<%QOWk(O*tK<+Vdny~VE)P6Z%@BHufxB7dm!Y~?wo23+BwzY0s;AS zh|CSsOHa~8s-FlS11Yej=?Lt=C!$oDa1N@uY#V>Xm^(lX*t1&ABjXx1d@Wn6MptH8 z0+{94r#nJQmEyO%!-rg%1)qGlHgk#^@YbB6hNRy7zM5IK2eGB-WGUz(wsZ#%UR(++ z!;HCrv4rDs!cpqv$SlL1-GKx4mO}Xew%|qV0fAfR2a~TK*zeB3WcaY<2ca*ClEjV5 zV51ax%Ae7tQYJW!ltO|mBZ?Y_IQ;4ijz>gJhMmB|Di-ue8PGYG>`5qP{7an;xcB;9 z#3*K$p=Eg2oiNRnS z;6ob>2L}ycs6(^yKYkoHHL>iVo#u|JWJRj8I?#r(pbanXoT}T;rcIwd9kMiuZ>8bo z{&9{4%trI`ovJv;w8}Iql#C75eC%~UWbQMKv3AVUEHl^_nMg_2AYO|ct|btyFoS|; z5`9vVYl8RYOu-=z@aP@ToC)6%#36ppA$ZIE{&UDcl>@53isxuzuMWDWJG-4sbk7Du zd@Qm;z)FIg{W{CwUfr&Le7{`@pBFCwXZ!GdJo_{Ei*F@wex$LT);Iz|g$CO8YBX!l tX*9>b)Z{eq=Diy0nR@*670T6lQry-vk?xsmc>#3KBBp2m^rswN{}0xS$6EjZ diff --git a/weapons.asm b/weapons.asm index 1102821..22958c7 100644 --- a/weapons.asm +++ b/weapons.asm @@ -41,7 +41,7 @@ ExplosionRoutines .word riotblast-1 ;Riot_Blast ;_16 .word riotbomb-1 ;Riot_Bomb ;_17 .word heavyriotbomb-1 ;Heavy_Riot_Bomb;_18 - .word propaganda-1 ;Baby_Digger ;_19 + .word propaganda-1 ;Propaganda ;_19 .word digger-1 ;Digger ;_20 .word heavydigger-1 ;Heavy_Digger ;_21 .word sandhog-1 ;Sandhog ;_22