# HG changeset patch # User Vatten # Date 1387397153 -3600 # Node ID 1795c34ab8db74378edf77077f323fef0e20af04 # Parent 0773ec65dfc27fb153701cca4b52362057c47eba Updated continental to the latest diff -r 0773ec65dfc2 -r 1795c34ab8db share/hedgewars/Data/Scripts/Multiplayer/Continental_supplies.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/Continental_supplies.lua Wed Dec 18 16:10:22 2013 +0400 +++ b/share/hedgewars/Data/Scripts/Multiplayer/Continental_supplies.lua Wed Dec 18 21:05:53 2013 +0100 @@ -1,5 +1,5 @@ --[[ -Version 1.1c +Made for 0.9.20 Copyright (C) 2012 Vatten @@ -44,6 +44,15 @@ end end +function EndTurn(baseRetreatTime) + local retreatTimePercentage = 100 + SetState(CurrentHedgehog,bor(GetState(CurrentHedgehog),gstAttacked)) + TurnTimeLeft = baseRetreatTime / 100 * retreatTimePercentage + end + +--for sundaland +local turnhog=0 + local teams_ok = {} local wepcode_teams={} local swapweps=false @@ -52,7 +61,6 @@ local australianSpecial=false local africanSpecial=0 local africaspecial2=0 -local asianSpecial=false local samericanSpecial=false local namericanSpecial=1 local sniper_s_in_use=false @@ -72,72 +80,78 @@ --for sabotage local disallowattack=0 local disable_moving={} -local disableoffsetai=0 +local disableRand=0 +--local disableoffsetai=0 local onsabotageai=false local continent = {} -local generalinfo=loc("- Per team weapons|- 9 weaponschemes|- Unique new weapons| |Select continent first round with the Weapon Menu or by ([switch/tab]=Increase,[presice/left shift]=Decrease) on Skip|Some weapons have a second option. Find them with [switch/tab]") +local generalinfo="- "..loc("Per team weapons").."|- 10 "..loc("weaponschemes").."|- "..loc("Unique new weapons").."| |"..loc("Select continent first round with the Weapon Menu or by").." (["..loc("switch").."/"..loc("tab").."]="..loc("Increase")..",["..loc("presice").."/"..loc("left shift").."]="..loc("Decrease")..") "..loc("on Skip").."|"..loc("Some weapons have a second option. Find them with").." ["..loc("switch").."/"..loc("tab").."]" local weapontexts = { -loc("Green lipstick bullet: [Is poisonous]"), -loc("PiƱata bullet: [Contains some sweet candy!]"), -loc("Anno 1032: [The explosion will make a strong push ~ wide range, wont affect hogs close to the target]"), +loc("Green lipstick bullet: [Poisonous, deals no damage]"), +loc("REMOVED"), +loc("Anno 1032: [The explosion will make a strong push ~ Wide range, wont affect hogs close to the target]"), loc("Dust storm: [Deals 15 damage to all enemies in the circle]"), -loc("Fire a mine: [Does what it says ~ Cant be dropped close to an enemy ~ 1 sec]"), -loc("Drop a bomb: [drop some heroic wind that will turn into a bomb on impact ~ once per turn]"), -loc("Scream from a Walrus: [Deal 20 damage + 10% of your hogs health to all hogs around you and get half back]"), +loc("Cricket time: [Drop a fireable mine! ~ Will work if fired close to your hog & far away from enemy ~ 1 sec]"), +loc("Drop a bomb: [Drop some heroic wind that will turn into a bomb on impact]"), +loc("Penguin roar: [Deal 15 damage + 15% of your hogs health to all hogs around you and get 2/3 back]"), loc("Disguise as a Rockhopper Penguin: [Swap place with a random enemy hog in the circle]"), -loc("Flare: [fire up some bombs depending on hogs depending on hogs in the circle"), +loc("REMOVED"), loc("Lonely Cries: [Rise the water if no hog is in the circle and deal 7 damage to all enemy hogs]"), -loc("Hedgehog projectile: [fire your hog like a Sticky Bomb]"), +loc("Hedgehog projectile: [Fire your hog like a Sticky Bomb]"), loc("Napalm rocket: [Fire a bomb with napalm!]"), -loc("Eagle Eye: [Blink to the impact ~ one shot]"), +loc("Eagle Eye: [Blink to the impact ~ One shot]"), loc("Medicine: [Fire some exploding medicine that will heal all hogs effected by the explosion]"), -loc("Sabotage: [Sabotage all hogs in the circle and deal ~10 dmg]") +loc("Sabotage/Flare: [Sabotage all hogs in the circle and deal ~1 dmg OR Fire a cluster up into the air]") } local weaponsets = { -{loc("North America"),"Area: 24,709,000 km2, Population: 528,720,588",loc("Special Weapons:").."|"..loc("Shotgun")..": "..weapontexts[13].."|"..loc("Sniper Rifle")..": "..weapontexts[1].."|"..loc("Sniper Rifle")..": "..weapontexts[2],amSniperRifle, -{{amShotgun,100},{amDEagle,100},{amLaserSight,4},{amSniperRifle,100},{amCake,1},{amAirAttack,2},{amSwitch,6}}}, +{loc("North America"),loc("Area")..": 24,709,000 km2, "..loc("Population")..": 529,000,000",loc("- Will give you an airstrike every fifth turn.").."|"..loc("Special Weapons:").."|"..loc("Shotgun")..": "..weapontexts[13].."|"..loc("Sniper Rifle")..": "..weapontexts[1],amSniperRifle, +{{amShotgun,100},{amDEagle,100},{amLaserSight,4},{amSniperRifle,100},{amCake,1},{amAirAttack,2},{amSwitch,5}}}, -{loc("South America"),"Area: 17,840,000 km2, Population: 387,489,196 ",loc("Special Weapons:").."|"..loc("GasBomb")..": "..weapontexts[3],amGasBomb, -{{amBirdy,6},{amHellishBomb,1},{amBee,100},{amWhip,100},{amGasBomb,100},{amFlamethrower,100},{amNapalm,1},{amExtraDamage,2}}}, +{loc("South America"),loc("Area")..": 17,840,000 km2, "..loc("Population")..": 387,000,000",loc("Special Weapons:").."|"..loc("GasBomb")..": "..weapontexts[3],amGasBomb, +{{amBirdy,100},{amHellishBomb,1},{amBee,100},{amGasBomb,100},{amFlamethrower,100},{amNapalm,1},{amExtraDamage,3}}}, -{loc("Europe"),"Area: 10,180,000 km2, Population: 739,165,030",loc("Special Weapons:").."|"..loc("Molotov")..": "..weapontexts[14],amBazooka, -{{amBazooka,100},{amGrenade,100},{amMortar,100},{amClusterBomb,5},{amMolotov,5},{amVampiric,4},{amPiano,1},{amResurrector,2},{amJetpack,2}}}, +{loc("Europe"),loc("Area")..": 10,180,000 km2, "..loc("Population")..": 740,000,000",loc("Special Weapons:").."|"..loc("Molotov")..": "..weapontexts[14],amBazooka, +{{amBazooka,100},{amGrenade,100},{amMortar,100},{amMolotov,100},{amVampiric,3},{amPiano,1},{amResurrector,2},{amJetpack,4}}}, -{loc("Africa"),"Area: 30,221,532 km2, Population: 1,032,532,974",loc("Special Weapons:").."|"..loc("Seduction")..": "..weapontexts[4].."|"..loc("Sticky Mine")..": "..weapontexts[11].."|"..loc("Sticky Mine")..": "..weapontexts[12],amSMine, -{{amSMine,100},{amWatermelon,1},{amDrillStrike,1},{amExtraTime,2},{amDrill,100},{amLandGun,3},{amSeduction,100}}}, +{loc("Africa"),loc("Area")..": 30,222,000 km2, "..loc("Population")..": 1,033,000,000",loc("Special Weapons:").."|"..loc("Seduction")..": "..weapontexts[4].."|"..loc("Sticky Mine")..": "..weapontexts[11].."|"..loc("Sticky Mine")..": "..weapontexts[12],amSMine, +{{amSMine,100},{amWatermelon,1},{amDrillStrike,1},{amDrill,100},{amInvulnerable,4},{amSeduction,100},{amLandGun,2}}}, + +{loc("Asia"),loc("Area")..": 44,579,000 km2, "..loc("Population")..": 3,880,000,000",loc("- Will give you a parachute every second turn.").."|"..loc("Special Weapons:").."|"..loc("Parachute")..": "..weapontexts[6],amRope, +{{amRope,100},{amFirePunch,100},{amParachute,1},{amKnife,2},{amDynamite,1}}}, -{loc("Asia"),"Area: 44,579,000 km2, Population: 3,879,000,000",loc("- Will give you a parachute each turn.").."|"..loc("Special Weapons:").."|"..loc("Parachute")..": "..weapontexts[6],amRope, -{{amKamikaze,4},{amRope,100},{amFirePunch,100},{amParachute,1},{amKnife,2},{amDynamite,1}}}, +{loc("Australia"),loc("Area")..": 8,468,000 km2, "..loc("Population")..": 31,000,000",loc("Special Weapons:").."|"..loc("Baseballbat")..": "..weapontexts[5],amBaseballBat, +{{amBaseballBat,100},{amMine,100},{amLowGravity,4},{amBlowTorch,100},{amRCPlane,2},{amTeleport,3}}}, -{loc("Australia"),"Area: 8,468,300 km2, Population: 31,260,000",loc("Special Weapons:").."|"..loc("Baseballbat")..": "..weapontexts[5],amBaseballBat, -{{amBaseballBat,100},{amMine,100},{amLowGravity,6},{amBlowTorch,100},{amRCPlane,2},{amTardis,100}}}, +{loc("Antarctica"),loc("Area")..": 14,000,000 km2, "..loc("Population")..": ~1,000",loc("Antarctic summer: - Will give you one girder/mudball and two sineguns/portals every fourth turn."),amIceGun, +{{amSnowball,2},{amIceGun,2},{amPickHammer,100},{amSineGun,4},{amGirder,2},{amExtraTime,2},{amPortalGun,2}}}, -{loc("Antarctica"),"Area: 14,000,000 km2, Population: ~1,000",loc("- Will give you a portalgun every second turn."),amTeleport, -{{amSnowball,4},{amTeleport,2},{amInvulnerable,6},{amPickHammer,100},{amSineGun,100},{amGirder,3},{amPortalGun,2}}}, +{loc("Kerguelen"),loc("Area")..": 1,100,000 km2, "..loc("Population")..": ~100",loc("Special Weapons:").."|"..loc("Hammer")..": "..weapontexts[7].."|"..loc("Hammer")..": "..weapontexts[8].." ("..loc("Duration")..": 2)|"..loc("Hammer")..": "..weapontexts[10].."|"..loc("Hammer")..": "..weapontexts[15],amHammer, +{{amHammer,100},{amMineStrike,2},{amBallgun,1}}}, -{loc("Kerguelen"),"Area: 1,100,000 km2, Population: ~70",loc("Special Weapons:").."|"..loc("Hammer")..": "..weapontexts[7].."|"..loc("Hammer")..": "..weapontexts[8].." ("..loc("Duration")..": 2)|"..loc("Hammer")..": "..weapontexts[9].."|"..loc("Hammer")..": "..weapontexts[10].."|"..loc("Hammer")..": "..weapontexts[15],amHammer, -{{amHammer,100},{amMineStrike,2},{amBallgun,1},{amIceGun,2}}}, +{loc("Zealandia"),loc("Area")..": 3,500,000 km2, "..loc("Population")..": 5,000,000",loc("- Will Get 1-3 random weapons") .. "|" .. loc("- Massive weapon bonus on first turn"),amInvulnerable, +{{amBazooka,1},{amGrenade,1},{amBlowTorch,1},{amSwitch,100},{amRope,1},{amDrill,1},{amDEagle,1},{amPickHammer,1},{amFirePunch,1},{amWhip,1},{amMortar,1},{amSnowball,1},{amExtraTime,1},{amInvulnerable,1},{amVampiric,1},{amFlamethrower,1},{amBee,1},{amClusterBomb,1},{amTeleport,1},{amLowGravity,1},{amJetpack,1},{amGirder,1},{amLandGun,1},{amBirdy,1}}}, -{loc("Zealandia"),"Area: 3,500,000 km2, Population: 4,650,000",loc("- Will Get 1-3 random weapons"),amInvulnerable, -{{amBazooka,1},{amBlowTorch,1},{amSwitch,1}}} +{loc("Sundaland"),loc("Area")..": 1,850,000 km2, "..loc("Population")..": 290,000,000",loc("- You will recieve 2-4 weapons on each kill! (Even on own hogs)"),amTardis, +{{amClusterBomb,3},{amTardis,4},{amWhip,100},{amKamikaze,4}}} + } local weaponsetssounds= { -{sndShotgunFire,sndCover}, -{sndEggBreak,sndLaugh}, -{sndExplosion,sndEnemyDown}, -{sndMelonImpact,sndHello}, -{sndRopeAttach,sndComeonthen}, -{sndBaseballBat,sndNooo}, -{sndSineGun,sndOops}, -{sndPiano5,sndStupid}, -{sndSplash,sndFirstBlood} + {sndShotgunFire,sndCover}, + {sndEggBreak,sndLaugh}, + {sndExplosion,sndEnemyDown}, + {sndMelonImpact,sndCoward}, + {sndRopeAttach,sndComeonthen}, + {sndBaseballBat,sndNooo}, + {sndSineGun,sndOops}, + {sndPiano5,sndStupid}, + {sndSplash,sndFirstBlood}, + {sndWarp,sndSameTeam} } --weapontype,ammo,?,duration,*times your choice,affect on random team (should be placed with 1,0,1,0,1 on the 6th option for better randomness) @@ -147,7 +161,7 @@ {amBazooka, 0, 1, 0, 1, 0}, {amMineStrike, 0, 1, 5, 1, 2}, {amGrenade, 0, 1, 0, 1, 0}, - {amPiano, 0, 1, 5, 1, 1}, + {amPiano, 0, 1, 5, 1, 0}, {amClusterBomb, 0, 1, 0, 1, 0}, {amBee, 0, 1, 0, 1, 0}, {amShotgun, 0, 0, 0, 1, 1}, @@ -168,7 +182,7 @@ {amDrill, 0, 1, 0, 1, 0}, {amBallgun, 0, 1, 5, 1, 2}, {amMolotov, 0, 1, 0, 1, 0}, - {amBirdy, 0, 1, 1, 1, 1}, + {amBirdy, 0, 1, 0, 1, 0}, {amBlowTorch, 0, 1, 0, 1, 0}, {amRCPlane, 0, 1, 5, 1, 2}, {amGasBomb, 0, 0, 0, 1, 0}, @@ -178,7 +192,6 @@ {amHammer, 0, 1, 0, 1, 0}, {amDrillStrike, 0, 1, 4, 1, 2}, {amSnowball, 0, 1, 0, 1, 0} - --{amStructure, 0, 0, 0, 1, 1} } local weapons_supp = { {amParachute, 0, 1, 0, 1, 0}, @@ -205,7 +218,20 @@ function validate_weapon(hog,weapon,amount) if(MapHasBorder() == false or (MapHasBorder() == true and weapon ~= amAirAttack and weapon ~= amMineStrike and weapon ~= amNapalm and weapon ~= amDrillStrike and weapon ~= amPiano)) then - AddAmmo(hog, weapon,amount) + if(amount==1) + then + AddAmmo(hog, weapon) + else + AddAmmo(hog, weapon,amount) + end + end +end + +function RemoveWeapon(hog,weapon) + + if(GetAmmoCount(hog, weapon)<100) + then + AddAmmo(hog,weapon,GetAmmoCount(hog, weapon)-1) end end @@ -233,11 +259,22 @@ --list up all weapons from the icons for each continent function load_continent_selection(hog) - for v,w in pairs(weaponsets) - do - validate_weapon(hog, weaponsets[v][4],1) + + if(GetHogLevel(hog)==0) + then + for v,w in pairs(weaponsets) + do + validate_weapon(hog, weaponsets[v][4],1) + end + AddAmmo(hog,amSwitch) --random continent + + --for the computers + else + --europe + validate_weapon(hog, weaponsets[3][4],1) + --north america + validate_weapon(hog, weaponsets[1][4],1) end - AddAmmo(hog,amSwitch) --random continent end --shows the continent info @@ -293,12 +330,12 @@ local numberof_weapons_supp=table.maxn(weapons_supp) local numberof_weapons_dmg=table.maxn(weapons_dmg) - local rand1=GetRandom(table.maxn(weapons_supp))+1 - local rand2=GetRandom(table.maxn(weapons_dmg))+1 + local rand1=math.abs(GetRandom(numberof_weapons_supp)+1) + local rand2=math.abs(GetRandom(numberof_weapons_dmg)+1) - random_weapon = GetRandom(table.maxn(weapons_dmg))+1 + random_weapon = math.abs(GetRandom(table.maxn(weapons_dmg))+1) - while(weapons_dmg[random_weapon][4]>TotalRounds) + while(weapons_dmg[random_weapon][4]>TotalRounds or (MapHasBorder() == true and (weapons_dmg[random_weapon][1]== amAirAttack or weapons_dmg[random_weapon][1] == amMineStrike or weapons_dmg[random_weapon][1] == amNapalm or weapons_dmg[random_weapon][1] == amDrillStrike or weapons_dmg[random_weapon][1] == amPiano))) do if(random_weapon>=numberof_weapons_dmg) then @@ -328,7 +365,7 @@ if(rand_weaponset_power <1) then random_weapon = rand2 - while(weapons_dmg[random_weapon][4]>TotalRounds or old_rand_weap == random_weapon or weapons_dmg[random_weapon][6]>0) + while(weapons_dmg[random_weapon][4]>TotalRounds or old_rand_weap == random_weapon or weapons_dmg[random_weapon][6]>0 or (MapHasBorder() == true and (weapons_dmg[random_weapon][1]== amAirAttack or weapons_dmg[random_weapon][1] == amMineStrike or weapons_dmg[random_weapon][1] == amNapalm or weapons_dmg[random_weapon][1] == amDrillStrike or weapons_dmg[random_weapon][1] == amPiano))) do if(random_weapon>=numberof_weapons_dmg) then @@ -343,6 +380,88 @@ end end +--sundaland add weps +function get_random_weapon_on_death(hog) + + local random_weapon = 0 + local old_rand_weap = 0 + local rand_weaponset_power = 0 + + local firstTurn=0 + + local numberof_weapons_supp=table.maxn(weapons_supp) + local numberof_weapons_dmg=table.maxn(weapons_dmg) + + local rand1=GetRandom(numberof_weapons_supp)+1 + local rand2=GetRandom(numberof_weapons_dmg)+1 + local rand3=GetRandom(numberof_weapons_dmg)+1 + + random_weapon = GetRandom(numberof_weapons_dmg)+1 + + if(TotalRounds<0) + then + firstTurn=-TotalRounds + end + + while(weapons_dmg[random_weapon][4]>(TotalRounds+firstTurn) or (MapHasBorder() == true and (weapons_dmg[random_weapon][1]== amAirAttack or weapons_dmg[random_weapon][1] == amMineStrike or weapons_dmg[random_weapon][1] == amNapalm or weapons_dmg[random_weapon][1] == amDrillStrike or weapons_dmg[random_weapon][1] == amPiano))) + do + if(random_weapon>=numberof_weapons_dmg) + then + random_weapon=0 + end + random_weapon = random_weapon+1 + end + validate_weapon(hog, weapons_dmg[random_weapon][1],1) + rand_weaponset_power=weapons_dmg[random_weapon][6] + old_rand_weap = random_weapon + + random_weapon = rand1 + while(weapons_supp[random_weapon][4]>(TotalRounds+firstTurn) or rand_weaponset_power+weapons_supp[random_weapon][6]>2) + do + if(random_weapon>=numberof_weapons_supp) + then + random_weapon=0 + end + random_weapon = random_weapon+1 + end + validate_weapon(hog, weapons_supp[random_weapon][1],1) + rand_weaponset_power=rand_weaponset_power+weapons_supp[random_weapon][6] + + --check again if the power is enough + if(rand_weaponset_power <2) + then + random_weapon = rand2 + while(weapons_dmg[random_weapon][4]>(TotalRounds+firstTurn) or old_rand_weap == random_weapon or weapons_dmg[random_weapon][6]>0 or (MapHasBorder() == true and (weapons_dmg[random_weapon][1]== amAirAttack or weapons_dmg[random_weapon][1] == amMineStrike or weapons_dmg[random_weapon][1] == amNapalm or weapons_dmg[random_weapon][1] == amDrillStrike or weapons_dmg[random_weapon][1] == amPiano))) + do + if(random_weapon>=numberof_weapons_dmg) + then + random_weapon=0 + end + random_weapon = random_weapon+1 + end + validate_weapon(hog, weapons_dmg[random_weapon][1],1) + rand_weaponset_power=weapons_dmg[random_weapon][6] + end + + if(rand_weaponset_power <1) + then + random_weapon = rand3 + while(weapons_dmg[random_weapon][4]>(TotalRounds+firstTurn) or old_rand_weap == random_weapon or weapons_dmg[random_weapon][6]>0 or (MapHasBorder() == true and (weapons_dmg[random_weapon][1]== amAirAttack or weapons_dmg[random_weapon][1] == amMineStrike or weapons_dmg[random_weapon][1] == amNapalm or weapons_dmg[random_weapon][1] == amDrillStrike or weapons_dmg[random_weapon][1] == amPiano))) + do + if(random_weapon>=numberof_weapons_dmg) + then + random_weapon=0 + end + random_weapon = random_weapon+1 + end + validate_weapon(hog, weapons_dmg[random_weapon][1],1) + end + + AddVisualGear(GetX(hog), GetY(hog)-30, vgtEvilTrace,0, false) + PlaySound(sndReinforce,hog) +end + + --this will take that hogs settings for the weapons and add them function setweapons() @@ -402,20 +521,22 @@ end --kerguelen special on structure -function weapon_scream_walrus(hog) +function weapon_scream_pen(hog) if(GetGearType(hog) == gtHedgehog) then if(gearIsInCircle(hog,GetX(CurrentHedgehog), GetY(CurrentHedgehog), 120, false)==true and GetHogClan(hog) ~= GetHogClan(CurrentHedgehog)) then - if(GetHealth(hog)>(20+GetHealth(CurrentHedgehog)*0.1)) + local dmg=15+GetHealth(CurrentHedgehog)*0.15 + + if(GetHealth(hog)>dmg) then - temp_val=temp_val+10+(GetHealth(CurrentHedgehog)*0.05)+div((20+GetHealth(CurrentHedgehog)*0.1)*VampOn,100) - SetHealth(hog, GetHealth(hog)-(20+GetHealth(CurrentHedgehog)*0.1)) + temp_val=temp_val+div(dmg*2,3)+div(dmg*VampOn*2,100*3) + SetHealth(hog, GetHealth(hog)-dmg) else - temp_val=temp_val+(GetHealth(hog)*0.5)+(GetHealth(CurrentHedgehog)*0.05)+div((GetHealth(hog)+(GetHealth(CurrentHedgehog)*0.1))*VampOn,100) + temp_val=temp_val+(GetHealth(hog)*0.75)+(GetHealth(CurrentHedgehog)*0.1)+div((GetHealth(hog)+(GetHealth(CurrentHedgehog)*0.15))*VampOn,100) SetHealth(hog, 0) end - show_damage_tag(hog,(20+GetHealth(CurrentHedgehog)*0.1)) + show_damage_tag(hog,dmg) AddVisualGear(GetX(hog), GetY(hog), vgtExplosion, 0, false) AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtSmokeWhite, 0, false) end @@ -437,35 +558,15 @@ end end ---kerguelen special on structure -function weapon_flare(hog) - if(GetGearType(hog) == gtHedgehog) - then - if(GetHogClan(hog) ~= GetHogClan(CurrentHedgehog) and gearIsInCircle(hog,GetX(CurrentHedgehog), GetY(CurrentHedgehog), 45, false)) - then - if(GetX(hog)<=GetX(CurrentHedgehog)) - then - dirker=1 - else - dirker=-1 - end - AddVisualGear(GetX(hog), GetY(hog), vgtFire, 0, false) - SetGearPosition(CurrentHedgehog, GetX(CurrentHedgehog), GetY(CurrentHedgehog)-5) - SetGearVelocity(CurrentHedgehog, 100000*dirker, -300000) - AddGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog)-20, gtCluster, 0, -10000*dirker, -1000000, 35) - PlaySound(sndHellishImpact2) - end - end -end - --kerguelen special will apply sabotage function weapon_sabotage(hog) if(GetGearType(hog) == gtHedgehog) then - if(GetHogClan(hog) ~= GetHogClan(CurrentHedgehog) and gearIsInCircle(hog,GetX(CurrentHedgehog), GetY(CurrentHedgehog), 100, false)) + if(CurrentHedgehog~=hog and gearIsInCircle(hog,GetX(CurrentHedgehog), GetY(CurrentHedgehog), 80, false)) then + temp_val=1 disable_moving[hog]=true - AddGear(GetX(hog), GetY(hog), gtCluster, 0, 0, 0, 10) + AddGear(GetX(hog), GetY(hog), gtCluster, 0, 0, 0, 1) PlaySound(sndNooo,hog) end end @@ -536,11 +637,22 @@ then if(gearIsInCircle(temp_val,GetX(hog), GetY(hog), 100, false)) then - SetHealth(hog, GetHealth(hog)+25) + SetHealth(hog, GetHealth(hog)+25+(div(25*VampOn,100))) SetEffect(hog, hePoisoned, false) end end end + +--for sundaland +function find_other_hog_in_team(hog) + if(GetGearType(hog) == gtHedgehog) + then + if(GetHogTeamName(turnhog)==GetHogTeamName(hog)) + then + turnhog=hog + end + end +end --============================================================================ --set each weapons settings @@ -562,7 +674,7 @@ function onGameStart() --trackTeams() - ShowMission(loc("Continental supplies").." 1.1c",loc("Let a Continent provide your weapons!"), + ShowMission(loc("Continental supplies"),loc("Let a Continent provide your weapons!"), loc(generalinfo), -amLowGravity, 0) end @@ -571,7 +683,6 @@ --will refresh the info on each tab weapon australianSpecial=true - asianSpecial=false austmine=nil africanSpecial=0 samericanSpecial=false @@ -586,11 +697,13 @@ temp_val=0 + turnhog=CurrentHedgehog + --for sabotage - disallowattack=0 if(disable_moving[CurrentHedgehog]==true) then - disableoffsetai=GetHogLevel(CurrentHedgehog) + disallowattack=-100 + disableRand=GetRandom(3)+5 end --when all hogs are "placed" @@ -599,12 +712,16 @@ --will run once when the game really starts (after placing hogs and so on if(teams_ok[GetHogTeamName(CurrentHedgehog)] == nil) then - disable_moving[CurrentHedgehog]=false AddCaption("["..loc("Select continent!").."]") load_continent_selection(CurrentHedgehog) continent[GetHogTeamName(CurrentHedgehog)]=0 swapweps=true teams_ok[GetHogTeamName(CurrentHedgehog)] = 2 + + if(disable_moving[CurrentHedgehog]==true) + then + disallowattack=-1000 + end else --if its not the initialization turn swapweps=false @@ -624,21 +741,49 @@ setTeamValue(GetHogTeamName(CurrentHedgehog), "rand-done-turn", nil) elseif(continent[GetHogTeamName(CurrentHedgehog)]==7) then - if(getTeamValue(GetHogTeamName(CurrentHedgehog), "Antarctica-turntick")==nil) + if(getTeamValue(GetHogTeamName(CurrentHedgehog), "Antarctica2-turntick")==nil) then - setTeamValue(GetHogTeamName(CurrentHedgehog), "Antarctica-turntick", 1) + setTeamValue(GetHogTeamName(CurrentHedgehog), "Antarctica2-turntick", 1) end - if(getTeamValue(GetHogTeamName(CurrentHedgehog), "Antarctica-turntick")>=2) + if(getTeamValue(GetHogTeamName(CurrentHedgehog), "Antarctica2-turntick")>=4) then AddAmmo(CurrentHedgehog,amPortalGun) - setTeamValue(GetHogTeamName(CurrentHedgehog), "Antarctica-turntick", 0) + AddAmmo(CurrentHedgehog,amPortalGun) + AddAmmo(CurrentHedgehog,amSineGun) + AddAmmo(CurrentHedgehog,amSineGun) + AddAmmo(CurrentHedgehog,amGirder) + AddAmmo(CurrentHedgehog,amSnowball) + setTeamValue(GetHogTeamName(CurrentHedgehog), "Antarctica2-turntick", 0) end - setTeamValue(GetHogTeamName(CurrentHedgehog), "Antarctica-turntick", getTeamValue(GetHogTeamName(CurrentHedgehog), "Antarctica-turntick")+1) + setTeamValue(GetHogTeamName(CurrentHedgehog), "Antarctica2-turntick", getTeamValue(GetHogTeamName(CurrentHedgehog), "Antarctica2-turntick")+1) elseif(continent[GetHogTeamName(CurrentHedgehog)]==5) then - AddAmmo(CurrentHedgehog,amParachute) + if(getTeamValue(GetHogTeamName(CurrentHedgehog), "Asia-turntick")==nil) + then + setTeamValue(GetHogTeamName(CurrentHedgehog), "Asia-turntick", 1) + end + + if(getTeamValue(GetHogTeamName(CurrentHedgehog), "Asia-turntick")>=2) + then + AddAmmo(CurrentHedgehog,amParachute) + setTeamValue(GetHogTeamName(CurrentHedgehog), "Asia-turntick", 0) + end + setTeamValue(GetHogTeamName(CurrentHedgehog), "Asia-turntick", getTeamValue(GetHogTeamName(CurrentHedgehog), "Asia-turntick")+1) + elseif(continent[GetHogTeamName(CurrentHedgehog)]==1) + then + if(getTeamValue(GetHogTeamName(CurrentHedgehog), "NA-turntick")==nil) + then + setTeamValue(GetHogTeamName(CurrentHedgehog), "NA-turntick", 1) + end + + if(getTeamValue(GetHogTeamName(CurrentHedgehog), "NA-turntick")>=5) + then + validate_weapon(CurrentHedgehog,amAirAttack,1) + setTeamValue(GetHogTeamName(CurrentHedgehog), "NA-turntick", 0) + end + setTeamValue(GetHogTeamName(CurrentHedgehog), "NA-turntick", getTeamValue(GetHogTeamName(CurrentHedgehog), "NA-turntick")+1) end end end @@ -663,19 +808,18 @@ else PlaySound(sndDenied) end - end - + --Asian special - if(asianSpecial==false and inpara~=false) + elseif(inpara==1) then asiabomb=AddGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog)+3, gtSnowball, 0, 0, 0, 0) SetGearMessage(asiabomb, 1) - asianSpecial=true + + inpara=2 swapweps=false - end - + --africa - if(GetCurAmmoType() == amSeduction) + elseif(GetCurAmmoType() == amSeduction) then if(africanSpecial==0) then @@ -685,9 +829,9 @@ africanSpecial = 0 AddCaption(loc("NORMAL")) end - end + --south america - if(GetCurAmmoType() == amGasBomb) + elseif(GetCurAmmoType() == amGasBomb) then if(samericanSpecial==false) then @@ -697,9 +841,9 @@ samericanSpecial = false AddCaption(loc("NORMAL")) end - end + --africa - if(GetCurAmmoType() == amSMine) + elseif(GetCurAmmoType() == amSMine) then if(africaspecial2==0) then @@ -714,12 +858,11 @@ africaspecial2 = 0 AddCaption(loc("NORMAL")) end - end - + --north america (sniper) - if(GetCurAmmoType() == amSniperRifle and sniper_s_in_use==false) + elseif(GetCurAmmoType() == amSniperRifle and sniper_s_in_use==false) then - if(namericanSpecial==3) + if(namericanSpecial==2) then namericanSpecial = 1 AddCaption(loc("NORMAL")) @@ -727,15 +870,10 @@ then namericanSpecial = 2 AddCaption("#"..weapontexts[1]) - elseif(namericanSpecial==2) - then - namericanSpecial = 3 - AddCaption("##"..weapontexts[2]) end - end - + --north america (shotgun) - if(GetCurAmmoType() == amShotgun and shotgun_s~=nil) + elseif(GetCurAmmoType() == amShotgun and shotgun_s~=nil) then if(shotgun_s==false) then @@ -745,10 +883,9 @@ shotgun_s = false AddCaption(loc("NORMAL")) end - end - + --europe - if(GetCurAmmoType() == amMolotov) + elseif(GetCurAmmoType() == amMolotov) then if(europe_s==0) then @@ -758,10 +895,9 @@ europe_s = 0 AddCaption(loc("NORMAL")) end - end - + --swap forward in the weaponmenu (1.0 style) - if(swapweps==true and (GetCurAmmoType() == amSkip or GetCurAmmoType() == amNothing)) + elseif(swapweps==true and (GetCurAmmoType() == amSkip or GetCurAmmoType() == amNothing)) then continent[GetHogTeamName(CurrentHedgehog)]=continent[GetHogTeamName(CurrentHedgehog)]+1 @@ -770,10 +906,9 @@ continent[GetHogTeamName(CurrentHedgehog)]=1 end setweapons() - end - + --kerguelen - if(GetCurAmmoType() == amHammer) + elseif(GetCurAmmoType() == amHammer) then if(kergulenSpecial==6) then @@ -789,16 +924,12 @@ AddCaption("##"..weapontexts[8]) elseif(kergulenSpecial==3 or (kergulenSpecial==2 and TotalRounds<1)) then - kergulenSpecial = 4 - AddCaption("###"..weapontexts[9]) - elseif(kergulenSpecial==4) - then kergulenSpecial = 5 - AddCaption("####"..weapontexts[10]) + AddCaption("###"..weapontexts[10]) elseif(kergulenSpecial==5) then kergulenSpecial = 6 - AddCaption("#####"..weapontexts[15]) + AddCaption("####"..weapontexts[15]) end end end @@ -811,7 +942,7 @@ if(continent[GetHogTeamName(CurrentHedgehog)]<=0) then - continent[GetHogTeamName(CurrentHedgehog)]=9 + continent[GetHogTeamName(CurrentHedgehog)]=table.maxn(weaponsets) end setweapons() end @@ -845,7 +976,7 @@ then if(visualcircle==nil) then - visualcircle=AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtCircle, 0, false) + visualcircle=AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtCircle, 0, true) end if(kergulenSpecial == 2) --walrus scream @@ -854,15 +985,12 @@ elseif(kergulenSpecial == 3) --swap hog then SetVisualGearValues(visualcircle, GetX(CurrentHedgehog), GetY(CurrentHedgehog),20, 200, 0, 0, 100, 450, 3, 0xffff00ee) - elseif(kergulenSpecial == 4) --flare - then - SetVisualGearValues(visualcircle, GetX(CurrentHedgehog), GetY(CurrentHedgehog),20, 200, 0, 0, 100, 45, 6, 0x00ff00ee) elseif(kergulenSpecial == 5) --cries then SetVisualGearValues(visualcircle, GetX(CurrentHedgehog), GetY(CurrentHedgehog),20, 200, 0, 0, 100, 500, 1, 0x0000ffee) elseif(kergulenSpecial == 6) --sabotage then - SetVisualGearValues(visualcircle, GetX(CurrentHedgehog), GetY(CurrentHedgehog),20, 200, 0, 0, 100, 100, 10, 0xeeeeeeee) + SetVisualGearValues(visualcircle, GetX(CurrentHedgehog), GetY(CurrentHedgehog),20, 200, 0, 0, 100, 80, 10, 0x00ff00ee) end elseif(visualcircle~=nil) @@ -878,19 +1006,21 @@ if(TurnTimeLeft<=150) then disable_moving[CurrentHedgehog]=false - SetHogLevel(CurrentHedgehog,disableoffsetai) - onsabotageai=false - elseif(disallowattack>=15 and disallowattack >= 20) + SetInputMask(0xFFFFFFFF) + elseif(disallowattack >= (25*disableRand)+5) then + temp_val=0 + + AddGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog)-10, gtCluster, 0, 0, -160000, 40) + disallowattack=0 - onsabotageai=true - SetHogLevel(CurrentHedgehog,1) + elseif(disallowattack % 20 == 0 and disallowattack>0) + then + SetInputMask(band(0xFFFFFFFF, bnot(gmLJump + gmHJump))) AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtSmokeWhite, 0, false) - elseif(onsabotageai==true) - then - SetHogLevel(CurrentHedgehog,disableoffsetai) - onsabotageai=false + disallowattack=disallowattack+1 else + SetInputMask(0xFFFFFFFF) disallowattack=disallowattack+1 end @@ -903,9 +1033,10 @@ swapweps=false --african special - if(africanSpecial == 1 and GetCurAmmoType() == amSeduction) + if(africanSpecial == 1 and GetCurAmmoType() == amSeduction and band(GetState(CurrentHedgehog),gstAttacked)==0) then - SetState(CurrentHedgehog, gstAttacked) + --SetState(CurrentHedgehog, gstAttacked) + EndTurn(3000) temp_val=0 runOnGears(weapon_duststorm) @@ -914,16 +1045,20 @@ --visual stuff visual_gear_explosion(250,GetX(CurrentHedgehog), GetY(CurrentHedgehog),vgtSmoke,vgtSmokeWhite) PlaySound(sndParachute) + + RemoveWeapon(CurrentHedgehog,amSeduction) --Kerguelen specials - elseif(GetCurAmmoType() == amHammer and kergulenSpecial > 1) + elseif(GetCurAmmoType() == amHammer and kergulenSpecial > 1 and band(GetState(CurrentHedgehog),gstAttacked)==0) then - SetState(CurrentHedgehog, gstAttacked) + --SetState(CurrentHedgehog, gstAttacked) + + --scream if(kergulenSpecial == 2) then temp_val=0 - runOnGears(weapon_scream_walrus) + runOnGears(weapon_scream_pen) SetHealth(CurrentHedgehog, GetHealth(CurrentHedgehog)+temp_val) PlaySound(sndHellish) @@ -933,14 +1068,6 @@ runOnGears(weapon_swap_kerg) PlaySound(sndPiano3) - --flare - elseif(kergulenSpecial == 4) - then - runOnGears(weapon_flare) - PlaySound(sndThrowRelease) - AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtSmokeWhite, 0, false) - AddGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog)-20, gtCluster, 0, 0, -1000000, 34) - --cries elseif(kergulenSpecial == 5) then @@ -961,10 +1088,22 @@ --sabotage elseif(kergulenSpecial == 6) then + temp_val=0 runOnGears(weapon_sabotage) + if(temp_val==0) + then + PlaySound(sndThrowRelease) + AddGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog)-20, gtCluster, 0, 0, -1000000, 32) + end end + + EndTurn(3000) + DeleteVisualGear(visualcircle) visualcircle=nil + kergulenSpecial=0 + + RemoveWeapon(CurrentHedgehog,amHammer) elseif(GetCurAmmoType() == amVampiric) then @@ -986,14 +1125,6 @@ austmine=nil end - --stop sabotage (avoiding a bug) - if(disable_moving[CurrentHedgehog]==true) - then - disable_moving[CurrentHedgehog]=false - onsabotageai=false - SetHogLevel(CurrentHedgehog,disableoffsetai) - end - australianSpecial=false end @@ -1056,7 +1187,7 @@ elseif(GetGearType(gearUid)==gtParachute) then - inpara=gearUid + inpara=1 end end @@ -1065,6 +1196,17 @@ if(GetGearType(gearUid) == gtHedgehog or GetGearType(gearUid) == gtMine or GetGearType(gearUid) == gtExplosives) then trackDeletion(gearUid) + + --sundaland special + if(GetGearType(gearUid) == gtHedgehog and continent[GetHogTeamName(turnhog)]==10) + then + if(turnhog==CurrentHedgehog) + then + runOnGears(find_other_hog_in_team) + end + + get_random_weapon_on_death(turnhog) + end end --north american lipstick @@ -1075,20 +1217,7 @@ then temp_val=gearUid runOnGears(weapon_lipstick) - - elseif(namericanSpecial==3) - then - AddVisualGear(GetX(gearUid), GetY(gearUid), vgtExplosion, 0, false) - - pinata=AddGear(GetX(gearUid), GetY(gearUid), gtCluster, 0, 0, 0, 5) - SetGearMessage(pinata,1) end - - --north american pinata - elseif(GetGearType(gearUid)==gtCluster and GetGearMessage(gearUid)==1 and namericanSpecial==3) - then - AddGear(GetX(gearUid), GetY(gearUid), gtCluster, 0, 0, 0, 20) - --north american eagle eye elseif(GetGearType(gearUid)==gtShotgunShot and shotgun_s==true) then @@ -1123,9 +1252,6 @@ inpara=false end end ---[[ -sources (populations & area): -Wikipedia +--[[sources (populations & area): Own calculations -if you think they are wrong, then please tell me :) -]] \ No newline at end of file +Some are approximations.]] \ No newline at end of file