# HG changeset patch # User alfadur # Date 1541030122 -10800 # Node ID 9c817b2eedaef16dcc5f730697818eba6b0a4a77 # Parent 8a0d69c16cadea03e9e8cd1240f660fdedc2158c# Parent 0a75f54692cbc1c9d873c1f65d8fec5e1f7d4714 merge diff -r 8a0d69c16cad -r 9c817b2eedae ChangeLog.txt --- a/ChangeLog.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/ChangeLog.txt Thu Nov 01 02:55:22 2018 +0300 @@ -7,7 +7,7 @@ + Rework team rankings + Tied teams now rank equally + Help button in main menu - + 14 new hedgehog taunts + + 19 new hedgehog taunts + Many new Lua API features * Functionality of controllers restored * Fix at least 2 crashes @@ -54,7 +54,10 @@ + New default brown clan color for better contrast + Allow to change volume during pause + Add sounds: flamethrower, landspray, idle freezer, shorykuen hit - + Add taunts: Amazing, Brilliant, Bugger, Drat, Excellent, Fire, Gonnagetyou, Grenade, Ohdear, Runaway, Solong, Thisoneismine, Whatthe, Watchthis + + Add taunts: Amazing, Brilliant, Bugger, Cutitout, Drat, Excellent, Fire, Gonnagetyou, Grenade, + Hmm, Leavemealone, Ohdear, Ouch, Revenge, Runaway, Solong, Thisoneismine, Whatthe, + Watchthis + * Enemy/AI hogs now say “Hmm” on turn start instead of vowing for revenge (at least in most voice packs) * Fix extreme amounts of droplets when shooting with minigun into ocean world edge * Fix some flakes disappearing in world wrap worlds while moving camera * Fix invisible projectile timer, attack bar, target on other side of wrap world edge @@ -132,6 +135,7 @@ * The Great Escape: Infinite attack mode did not work * Shotgun/Sniper Rifle Target Practice: Suppress “X remaining” message * Fix resurrection animation appearing at wrong position for some missions and styles + * Fix Lua error when playing any mission or style in Lithuanian language A Classic Fairytale: * Fix clan membership of princess in some missions diff -r 8a0d69c16cad -r 9c817b2eedae gameServer2/Cargo.toml --- a/gameServer2/Cargo.toml Wed Oct 31 23:36:05 2018 +0100 +++ b/gameServer2/Cargo.toml Thu Nov 01 02:55:22 2018 +0300 @@ -14,10 +14,10 @@ mio = "0.6" slab = "0.4" netbuf = "0.4" -nom = "4.0" +nom = "4.1" env_logger = "0.5" log = "0.4" -base64 = "0.9" +base64 = "0.10" bitflags = "1.0" serde = "1.0" serde_yaml = "0.8" diff -r 8a0d69c16cad -r 9c817b2eedae hedgewars/uConsts.pas --- a/hedgewars/uConsts.pas Wed Oct 31 23:36:05 2018 +0100 +++ b/hedgewars/uConsts.pas Thu Nov 01 02:55:22 2018 +0300 @@ -191,6 +191,8 @@ cMaxHogHealth = 268435455; // maximum hedgehog health // cMaxHogHealth was calculated by: High(LongInt) div (cMaxHHIndex+1); + ouchDmg = 55; // least amount of damage a hog must take in one blow for sndOuch to play + // Z levels cHHZ = 1000; cCurrHHZ = Succ(cHHZ); diff -r 8a0d69c16cad -r 9c817b2eedae hedgewars/uGears.pas --- a/hedgewars/uGears.pas Wed Oct 31 23:36:05 2018 +0100 +++ b/hedgewars/uGears.pas Thu Nov 01 02:55:22 2018 +0300 @@ -163,7 +163,7 @@ inc(Gear^.Damage, tmp); if tmp > 0 then // Make hedgehog moan on damage - HHHurt(Gear^.Hedgehog, dsPoison); + HHHurt(Gear^.Hedgehog, dsPoison, tmp); end end; @@ -509,7 +509,9 @@ end; AddRandomness(CheckSum); TurnClockActive:= prevtime <> TurnTimeLeft; -inc(GameTicks) +inc(GameTicks); +if (OuchTauntTimer > 0) then + dec(OuchTauntTimer); end; //Purpose, to reset all transient attributes toggled by a utility and clean up various gears and effects at end of turn diff -r 8a0d69c16cad -r 9c817b2eedae hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Wed Oct 31 23:36:05 2018 +0100 +++ b/hedgewars/uGearsHandlersMess.pas Thu Nov 01 02:55:22 2018 +0300 @@ -5806,7 +5806,7 @@ dmg:= dmg div Gear^.Boom; if dmg > 0 then - ApplyDamage(tmp, CurrentHedgehog, dmg, dsUnknown); + ApplyDamage(tmp, CurrentHedgehog, dmg, dsHammer); end; tmp^.dY:= _0_03 * Gear^.Boom end; diff -r 8a0d69c16cad -r 9c817b2eedae hedgewars/uGearsUtils.pas --- a/hedgewars/uGearsUtils.pas Wed Oct 31 23:36:05 2018 +0100 +++ b/hedgewars/uGearsUtils.pas Thu Nov 01 02:55:22 2018 +0300 @@ -31,7 +31,7 @@ function ModifyDamage(dmg: Longword; Gear: PGear): Longword; procedure ApplyDamage(Gear: PGear; AttackerHog: PHedgehog; Damage: Longword; Source: TDamageSource); procedure spawnHealthTagForHH(HHGear: PGear; dmg: Longword); -procedure HHHurt(Hedgehog: PHedgehog; Source: TDamageSource); +procedure HHHurt(Hedgehog: PHedgehog; Source: TDamageSource; Damage: Longword); procedure HHHeal(Hedgehog: PHedgehog; healthBoost: LongInt; showMessage: boolean; vgTint: Longword); procedure HHHeal(Hedgehog: PHedgehog; healthBoost: LongInt; showMessage: boolean); function IncHogHealth(Hedgehog: PHedgehog; healthBoost: LongInt): LongInt; @@ -280,7 +280,7 @@ Gear^.LastDamage := AttackerHog; Gear^.Hedgehog^.Team^.Clan^.Flawless:= false; - HHHurt(Gear^.Hedgehog, Source); + HHHurt(Gear^.Hedgehog, Source, Damage); AddDamageTag(hwRound(Gear^.X), hwRound(Gear^.Y), Damage, Gear^.Hedgehog^.Team^.Clan^.Color); tmpDmg:= min(Damage, max(0,Gear^.Health-Gear^.Damage)); if (Gear <> CurrentHedgehog^.Gear) and (CurrentHedgehog^.Gear <> nil) and (tmpDmg >= 1) then @@ -348,11 +348,17 @@ end; // Play effects for hurt hedgehog -procedure HHHurt(Hedgehog: PHedgehog; Source: TDamageSource); +procedure HHHurt(Hedgehog: PHedgehog; Source: TDamageSource; Damage: Longword); begin if Hedgehog^.Effects[heFrozen] <> 0 then exit; -if (Source = dsFall) or (Source = dsExplosion) then +if (Damage >= ouchDmg) and (OuchTauntTimer = 0) and ((Source = dsFall) or (Source = dsBullet) or (Source = dsShove) or (Source = dsHammer)) then + begin + PlaySoundV(sndOuch, Hedgehog^.Team^.voicepack); + // Prevent sndOuch from being played too often in short time + OuchTauntTimer:= 1250; + end +else if (Source = dsFall) or (Source = dsExplosion) then case random(3) of 0: PlaySoundV(sndOoff1, Hedgehog^.Team^.voicepack); 1: PlaySoundV(sndOoff2, Hedgehog^.Team^.voicepack); @@ -1394,7 +1400,7 @@ begin if (Ammo^.Hedgehog^.Gear <> nil) then Ammo^.Hedgehog^.Gear^.State:= Ammo^.Hedgehog^.Gear^.State and (not gstNotKickable); - ApplyDamage(Gear, Ammo^.Hedgehog, tmpDmg * 100, dsUnknown); // crank up damage for explosives + blowtorch + ApplyDamage(Gear, Ammo^.Hedgehog, tmpDmg * 100, dsExplosion); // crank up damage for explosives + blowtorch end; if (Gear^.Kind = gtHedgehog) and (Gear^.Hedgehog^.King or (Gear^.Hedgehog^.Effects[heFrozen] > 0)) then diff -r 8a0d69c16cad -r 9c817b2eedae hedgewars/uScript.pas --- a/hedgewars/uScript.pas Wed Oct 31 23:36:05 2018 +0100 +++ b/hedgewars/uScript.pas Thu Nov 01 02:55:22 2018 +0300 @@ -2187,7 +2187,7 @@ if instaVoice then PlaySoundV(TSound(s), gear^.Hedgehog^.Team^.Voicepack, false, true) else - AddVoice(TSound(s), gear^.Hedgehog^.Team^.Voicepack, true); + AddVoice(TSound(s), gear^.Hedgehog^.Team^.Voicepack, true, false); end; end; end; diff -r 8a0d69c16cad -r 9c817b2eedae hedgewars/uSound.pas --- a/hedgewars/uSound.pas Wed Oct 31 23:36:05 2018 +0100 +++ b/hedgewars/uSound.pas Thu Nov 01 02:55:22 2018 +0300 @@ -62,14 +62,15 @@ // Plays the sound snd [from a given voicepack], // if keepPlaying is given and true, // then the sound's playback won't be interrupted if asked to play again. -procedure PlaySound(snd: TSound); -procedure PlaySound(snd: TSound; keepPlaying: boolean); -procedure PlaySound(snd: TSound; keepPlaying: boolean; ignoreMask: boolean); -procedure PlaySound(snd: TSound; keepPlaying, ignoreMask, soundAsMusic: boolean); -procedure PlaySoundV(snd: TSound; voicepack: PVoicepack); -procedure PlaySoundV(snd: TSound; voicepack: PVoicepack; keepPlaying: boolean); -procedure PlaySoundV(snd: TSound; voicepack: PVoicepack; keepPlaying, ignoreMask: boolean); -procedure PlaySoundV(snd: TSound; voicepack: PVoicepack; keepPlaying, ignoreMask, soundAsMusic: boolean); +// Returns true if sound was found and is played, false otherwise. +function PlaySound(snd: TSound): boolean; +function PlaySound(snd: TSound; keepPlaying: boolean): boolean; +function PlaySound(snd: TSound; keepPlaying: boolean; ignoreMask: boolean): boolean; +function PlaySound(snd: TSound; keepPlaying, ignoreMask, soundAsMusic: boolean): boolean; +function PlaySoundV(snd: TSound; voicepack: PVoicepack): boolean; +function PlaySoundV(snd: TSound; voicepack: PVoicepack; keepPlaying: boolean): boolean; +function PlaySoundV(snd: TSound; voicepack: PVoicepack; keepPlaying, ignoreMask: boolean): boolean; +function PlaySoundV(snd: TSound; voicepack: PVoicepack; keepPlaying, ignoreMask, soundAsMusic: boolean): boolean; // Plays/stops a sound to replace the main background music temporarily. procedure PlayMusicSound(snd: TSound); @@ -89,8 +90,11 @@ procedure StopSoundChan(chn: LongInt); procedure StopSoundChan(chn, fadems: LongInt); +// Add voice to the voice queue procedure AddVoice(snd: TSound; voicepack: PVoicepack); -procedure AddVoice(snd: TSound; voicepack: PVoicepack; ignoreMask: boolean); +procedure AddVoice(snd: TSound; voicepack: PVoicepack; ignoreMask, isFallback: boolean); + +// Actually play next voice procedure PlayNextVoice; @@ -125,6 +129,7 @@ var Volume: LongInt; SoundTimerTicks: Longword; + LastVoiceFailed: boolean; implementation uses uVariables, uConsole, uCommands, uDebug, uPhysFSLayer; @@ -140,14 +145,14 @@ isAutoDampening: boolean; isSEBackup: boolean; VoiceList : array[0..7] of TVoice = ( - ( snd: sndNone; voicepack: nil), - ( snd: sndNone; voicepack: nil), - ( snd: sndNone; voicepack: nil), - ( snd: sndNone; voicepack: nil), - ( snd: sndNone; voicepack: nil), - ( snd: sndNone; voicepack: nil), - ( snd: sndNone; voicepack: nil), - ( snd: sndNone; voicepack: nil)); + ( snd: sndNone; voicepack: nil; isFallback: false), + ( snd: sndNone; voicepack: nil; isFallback: false), + ( snd: sndNone; voicepack: nil; isFallback: false), + ( snd: sndNone; voicepack: nil; isFallback: false), + ( snd: sndNone; voicepack: nil; isFallback: false), + ( snd: sndNone; voicepack: nil; isFallback: false), + ( snd: sndNone; voicepack: nil; isFallback: false), + ( snd: sndNone; voicepack: nil; isFallback: false)); Soundz: array[TSound] of record FileName: string[31]; Path, AltPath : TPathType; @@ -319,7 +324,12 @@ (FileName: 'Excellent.ogg'; Path: ptVoices; AltPath: ptNone),// sndExcellent (FileName: 'Fire.ogg'; Path: ptVoices; AltPath: ptNone),// sndFire (FileName: 'Watchthis.ogg'; Path: ptVoices; AltPath: ptNone),// sndWatchThis - (FileName: 'Runaway.ogg'; Path: ptVoices; AltPath: ptNone) // sndRunAway + (FileName: 'Runaway.ogg'; Path: ptVoices; AltPath: ptNone),// sndRunAway + (FileName: 'Revenge.ogg'; Path: ptVoices; AltPath: ptNone),// sndRevenge + (FileName: 'Cutitout.ogg'; Path: ptVoices; AltPath: ptNone),// sndCutItOut + (FileName: 'Leavemealone.ogg'; Path: ptVoices; AltPath: ptNone),// sndLeaveMeAlone + (FileName: 'Ouch.ogg'; Path: ptVoices; AltPath: ptNone),// sndOuch + (FileName: 'Hmm.ogg'; Path: ptVoices; AltPath: ptNone) // sndHmm ); @@ -462,45 +472,89 @@ end; end; -procedure PlaySound(snd: TSound); -begin - PlaySoundV(snd, nil, false, false, false); -end; - -procedure PlaySound(snd: TSound; keepPlaying: boolean); +// Get a fallback voice, assuming that snd is not available. Returns sndNone if none is found. +function GetFallbackV(snd: TSound): TSound; begin - PlaySoundV(snd, nil, keepPlaying, false, false); -end; - -procedure PlaySound(snd: TSound; keepPlaying: boolean; ignoreMask: boolean); -begin - PlaySoundV(snd, nil, keepPlaying, ignoreMask, false); + // Fallback to sndFirePunch1 / sndOw1 / sndOoff1 if a “higher-numbered” sound is missing + if (snd in [sndFirePunch2, sndFirePunch3, sndFirePunch4, sndFirePunch5, sndFirePunch6]) then + GetFallbackV := sndFirePunch1 + else if (snd in [sndOw2, sndOw3, sndOw4, sndOuch]) then + GetFallbackV := sndOw1 + else if (snd in [sndOoff2, sndOoff3]) then + GetFallbackV := sndOoff1 + // Other fallback sounds + else if (snd = sndGrenade) then + if random(2) = 0 then + GetFallbackV := sndNooo + else + GetFallbackV := sndUhOh + else if (snd in [sndDrat, sndBugger]) then + GetFallbackV := sndStupid + else if (snd in [sndGonnaGetYou, sndCutItOut, sndLeaveMeAlone]) then + GetFallbackV := sndRegret + else if (snd in [sndOhDear, sndSoLong]) then + GetFallbackV := sndByeBye + else if (snd = sndWhatThe) then + GetFallbackV := sndNooo + else if (snd = sndRunAway) then + GetFallbackV := sndOops + else if (snd = sndThisOneIsMine) then + GetFallbackV := sndReinforce + else if (snd in [sndAmazing, sndBrilliant, sndExcellent]) then + GetFallbackV := sndEnemyDown + // Hmm is for enemy turn start + else if snd = sndHmm then + // these are not ideal fallbacks, but those were the voices which were used in older versions + // for enemy turn start + if random(2) = 0 then + GetFallbackV := sndIllGetYou + else + GetFallbackV := sndJustYouWait + else + GetFallbackV := sndNone; end; -procedure PlaySound(snd: TSound; keepPlaying: boolean; ignoreMask, soundAsMusic: boolean); +function PlaySound(snd: TSound): boolean; begin - PlaySoundV(snd, nil, keepPlaying, ignoreMask, soundAsMusic); + PlaySound:= PlaySoundV(snd, nil, false, false, false); end; -procedure PlaySoundV(snd: TSound; voicepack: PVoicepack); +function PlaySound(snd: TSound; keepPlaying: boolean): boolean; begin - PlaySoundV(snd, voicepack, false, false, false); + PlaySound:= PlaySoundV(snd, nil, keepPlaying, false, false); +end; + +function PlaySound(snd: TSound; keepPlaying: boolean; ignoreMask: boolean): boolean; +begin + PlaySound:= PlaySoundV(snd, nil, keepPlaying, ignoreMask, false); end; -procedure PlaySoundV(snd: TSound; voicepack: PVoicepack; keepPlaying: boolean); +function PlaySound(snd: TSound; keepPlaying: boolean; ignoreMask, soundAsMusic: boolean): boolean; begin - PlaySoundV(snd, voicepack, keepPlaying, false, false); + PlaySound:= PlaySoundV(snd, nil, keepPlaying, ignoreMask, soundAsMusic); +end; + +function PlaySoundV(snd: TSound; voicepack: PVoicepack): boolean; +begin + PlaySoundV:= PlaySoundV(snd, voicepack, false, false, false); end; -procedure PlaySoundV(snd: TSound; voicepack: PVoicepack; keepPlaying, ignoreMask: boolean); +function PlaySoundV(snd: TSound; voicepack: PVoicepack; keepPlaying: boolean): boolean; begin - PlaySoundV(snd, voicepack, keepPlaying, ignoreMask, false); + PlaySoundV:= PlaySoundV(snd, voicepack, keepPlaying, false, false); end; -procedure PlaySoundV(snd: TSound; voicepack: PVoicepack; keepPlaying, ignoreMask, soundAsMusic: boolean); +function PlaySoundV(snd: TSound; voicepack: PVoicepack; keepPlaying, ignoreMask: boolean): boolean; +begin + PlaySoundV:= PlaySoundV(snd, voicepack, keepPlaying, ignoreMask, false); +end; + +function PlaySoundV(snd: TSound; voicepack: PVoicepack; keepPlaying, ignoreMask, soundAsMusic: boolean): boolean; var s:shortstring; rwops: PSDL_RWops; begin + s:= cPathz[Soundz[snd].Path] + '/' + voicepack^.name + '/' + Soundz[snd].FileName; + PlaySoundV:= false; if ((not isSoundEnabled) and (not (soundAsMusic and isMusicEnabled))) or fastUntilLag then exit; @@ -515,37 +569,12 @@ if (voicepack^.chunks[snd] = nil) and (Soundz[snd].Path = ptVoices) and (Soundz[snd].FileName <> '') then begin s:= cPathz[Soundz[snd].Path] + '/' + voicepack^.name + '/' + Soundz[snd].FileName; - // Fallback sounds + // Fallback taunts if (not pfsExists(s)) then begin - // Fallback to sndFirePunch1 / sndOw1 / sndOoff1 if a “higher-numbered” sound is missing - if (snd in [sndFirePunch2, sndFirePunch3, sndFirePunch4, sndFirePunch5, sndFirePunch6]) then - snd := sndFirePunch1 - else if (snd in [sndOw2, sndOw3, sndOw4]) then - snd := sndOw1 - else if (snd in [sndOoff2, sndOoff3]) then - snd := sndOoff1 - // Other fallback sounds - else if (snd = sndGrenade) then - if random(2) = 0 then - snd := sndNooo - else - snd := sndUhOh - else if (snd in [sndDrat, sndBugger]) then - snd := sndStupid - else if (snd = sndGonnaGetYou) then - snd := sndRegret - else if (snd in [sndOhDear, sndSoLong]) then - snd := sndByeBye - else if (snd = sndWhatThe) then - snd := sndNooo - else if (snd = sndRunAway) then - snd := sndOops - else if (snd = sndThisOneIsMine) then - snd := sndReinforce - else if (snd in [sndAmazing, sndBrilliant, sndExcellent]) then - snd := sndEnemyDown; - + snd := GetFallbackV(snd); + if snd = sndNone then + exit; s:= cPathz[Soundz[snd].Path] + '/' + voicepack^.name + '/' + Soundz[snd].FileName; end; WriteToConsole(msgLoading + s + ' '); @@ -564,7 +593,8 @@ else WriteLnToConsole(msgOK) end; - lastChan[snd]:= Mix_PlayChannelTimed(-1, voicepack^.chunks[snd], 0, -1) + lastChan[snd]:= Mix_PlayChannelTimed(-1, voicepack^.chunks[snd], 0, -1); + PlaySoundV:= true; end else begin @@ -585,7 +615,8 @@ if SDLCheck(defVoicepack^.chunks[snd] <> nil, 'Mix_LoadWAV_RW', true) then exit; WriteLnToConsole(msgOK); end; - lastChan[snd]:= Mix_PlayChannelTimed(-1, defVoicepack^.chunks[snd], 0, -1) + lastChan[snd]:= Mix_PlayChannelTimed(-1, defVoicepack^.chunks[snd], 0, -1); + PlaySoundV:= true; end; end; @@ -603,10 +634,23 @@ procedure AddVoice(snd: TSound; voicepack: PVoicepack); begin - AddVoice(snd, voicepack, false); + AddVoice(snd, voicepack, false, false); end; -procedure AddVoice(snd: TSound; voicepack: PVoicepack; ignoreMask: boolean); +{ +AddVoice: Add a voice to the voice queue. +* snd: Sound ID +* voicepack: Hedgehog voicepack +* ignoreMask: If true, the sound will be played anyway if masked by Lua +* isFallback: If true, this sound is added as fallback if the sound previously added to the + queue was not found. Useful to make sure a voice is always played, even if + a voicepack is incomplete. + Example: + AddVoice(sndRevenge, voiceAttacker); + AddVoice(sndRegret, voiceVictim, false, true); + --> plays sndRegret if sndRevenge could not be played. +} +procedure AddVoice(snd: TSound; voicepack: PVoicepack; ignoreMask, isFallback: boolean); var i : LongInt; begin @@ -634,11 +678,13 @@ begin VoiceList[i].snd:= snd; VoiceList[i].voicepack:= voicepack; + VoiceList[i].isFallback:= isFallback; end end; procedure PlayNextVoice; var i : LongInt; + played : boolean; begin if (not isSoundEnabled) or fastUntilLag or ((LastVoice.snd <> sndNone) and (lastChan[LastVoice.snd] <> -1) and (Mix_Playing(lastChan[LastVoice.snd]) <> 0)) then exit; @@ -646,14 +692,19 @@ while (i sndNone) then + played:= false; + if (VoiceList[i].snd <> sndNone) and ((not VoiceList[i].isFallback) or LastVoiceFailed) then begin LastVoice.snd:= VoiceList[i].snd; LastVoice.voicepack:= VoiceList[i].voicepack; + LastVoice.isFallback:= VoiceList[i].isFallback; VoiceList[i].snd:= sndNone; - PlaySoundV(LastVoice.snd, LastVoice.voicepack) + played:= PlaySoundV(LastVoice.snd, LastVoice.voicepack); + // Remember if sound was not played. + LastVoiceFailed:= (not played); end - else LastVoice.snd:= sndNone; + else + LastVoice.snd:= sndNone; end; function LoopSound(snd: TSound): LongInt; @@ -953,6 +1004,7 @@ Volume:= 0; SoundTimerTicks:= 0; defVoicepack:= AskForVoicepack('Default'); + LastVoiceFailed:= false; for i:= Low(TSound) to High(TSound) do lastChan[i]:= -1; diff -r 8a0d69c16cad -r 9c817b2eedae hedgewars/uStats.pas --- a/hedgewars/uStats.pas Wed Oct 31 23:36:05 2018 +0100 +++ b/hedgewars/uStats.pas Thu Nov 01 02:55:22 2018 +0300 @@ -53,17 +53,21 @@ uses uSound, uLocale, uVariables, uUtils, uIO, uCaptions, uMisc, uConsole, uScript; var DamageClan : Longword = 0; + DamageTeam : Longword = 0; DamageTotal : Longword = 0; DamageTurn : Longword = 0; PoisonTurn : Longword = 0; // Poisoned enemies per turn PoisonClan : Longword = 0; // Poisoned own clan members in turn + PoisonTeam : Longword = 0; // Poisoned own team members in turn PoisonTotal : Longword = 0; // Poisoned hogs in whole round KillsClan : LongWord = 0; + KillsTeam : LongWord = 0; Kills : LongWord = 0; KillsTotal : LongWord = 0; HitTargets : LongWord = 0; // Target (gtTarget) hits per turn AmmoUsedCount : Longword = 0; AmmoDamagingUsed : boolean = false; + LeaveMeAlone : boolean = false; SkippedTurns: LongWord = 0; isTurnSkipped: boolean = false; vpHurtSameClan: PVoicepack = nil; @@ -71,10 +75,12 @@ procedure HedgehogPoisoned(Gear: PGear; Attacker: PHedgehog); begin - if Attacker^.Team^.Clan = Gear^.HEdgehog^.Team^.Clan then + if Attacker^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan then begin - vpHurtSameClan:= CurrentHedgehog^.Team^.voicepack; - inc(PoisonClan) + vpHurtSameClan:= Gear^.Hedgehog^.Team^.voicepack; + inc(PoisonClan); + if Attacker^.Team = Gear^.Hedgehog^.Team then + inc(PoisonTeam); end else begin @@ -93,9 +99,28 @@ procedure HedgehogDamaged(Gear: PGear; Attacker: PHedgehog; Damage: Longword; killed: boolean); begin if Attacker^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan then - vpHurtSameClan:= CurrentHedgehog^.Team^.voicepack + vpHurtSameClan:= Gear^.Hedgehog^.Team^.voicepack else + begin vpHurtEnemy:= Gear^.Hedgehog^.Team^.voicepack; + if (not killed) then + begin + // Check if victim got attacked by RevengeHog again + if (Gear^.Hedgehog^.RevengeHog <> nil) and (Gear^.Hedgehog^.RevengeHog = Attacker) then + LeaveMeAlone:= true; + // Check if attacker got revenge + if (Attacker^.RevengeHog <> nil) and (Attacker^.RevengeHog = Gear^.Hedgehog) then + begin + Attacker^.stats.GotRevenge:= true; + // Also reset the "in-row" counter to restore LeaveMeAlone/CutItOut taunts + Attacker^.stats.StepDamageRecvInRow:= 0; + Attacker^.RevengeHog:= nil; + end + // If not, victim remembers their attacker to plan *their* revenge + else + Gear^.Hedgehog^.RevengeHog:= Attacker; + end + end; ////////////////////////// @@ -103,6 +128,7 @@ inc(Gear^.Hedgehog^.stats.StepDamageRecv, Damage); if CurrentHedgehog^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan then inc(DamageClan, Damage); +if CurrentHedgehog^.Team = Gear^.Hedgehog^.Team then inc(DamageTeam, Damage); if killed then begin @@ -119,7 +145,11 @@ if Gear = Attacker^.Gear then inc(Attacker^.Team^.stats.Suicides); if Attacker^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan then + begin inc(KillsClan); + if Attacker^.Team = Gear^.Hedgehog^.Team then + inc(KillsTeam); + end; end; inc(DamageTotal, Damage); @@ -147,6 +177,7 @@ for t:= 0 to Pred(TeamsCount) do // send even on zero turn with TeamsArray[t]^ do for i:= 0 to cMaxHHIndex do + begin with Hedgehogs[i].stats do begin inc(DamageRecv, StepDamageRecv); @@ -157,7 +188,18 @@ MaxStepDamageGiven:= StepDamageGiven; if StepKills > MaxStepKills then MaxStepKills:= StepKills; + if (Hedgehogs[i].Team <> nil) and (Hedgehogs[i].Team^.Clan^.ClanIndex <> CurrentHedgehog^.Team^.Clan^.ClanIndex) then + begin + if StepDamageRecv > 0 then + inc(StepDamageRecvInRow) + else + StepDamageRecvInRow:= 0; + if StepDamageRecvInRow >= 3 then + LeaveMeAlone:= true; + end; end; + end; + // Write into the death log which clans died in this turn, // important for final rankings. @@ -241,8 +283,10 @@ else AddVoice(sndWatchIt, vpHurtSameClan) else - if random(2) = 0 then + // Attacked same team + if (random(2) = 0) and ((DamageTeam <> 0) or (KillsTeam > killsCheck) or (PoisonTeam <> 0)) then AddVoice(sndSameTeam, vpHurtSameClan) + // Attacked same team or a clan member else AddVoice(sndTraitor, vpHurtSameClan) @@ -262,12 +306,35 @@ AddVoice(sndEnemyDown, CurrentTeam^.voicepack) // 0 kills, only damage or poison else - // TODO: Play sndExcellent for a high damage shot. - // Not done yet because the fallback is sndEnemyDown. - if random(2) = 0 then - AddVoice(sndRegret, vpHurtEnemy) + // possible reactions of victim, in the order of preference: + // 1. claiming revenge + // 2. complaining about getting attacked too often + // 3. threatening enemy with retaliation + if CurrentHedgehog^.stats.GotRevenge then + begin + AddVoice(sndRevenge, CurrentHedgehog^.Team^.voicepack); + // If revenge taunt was added, one of the following voices is + // added as fallback (4th param), in case of a missing Revenge sound file. + case random(4) of + 0: AddVoice(sndRegret, vpHurtEnemy, false, true); + 1: AddVoice(sndGonnaGetYou, vpHurtEnemy, false, true); + 2: AddVoice(sndIllGetYou, vpHurtEnemy, false, true); + 3: AddVoice(sndJustYouWait, vpHurtEnemy, false, true); + end; + end else - AddVoice(sndGonnaGetYou, vpHurtEnemy) + if LeaveMeAlone then + if random(2) = 0 then + AddVoice(sndCutItOut, vpHurtEnemy) + else + AddVoice(sndLeaveMeAlone, vpHurtEnemy) + else + case random(4) of + 0: AddVoice(sndRegret, vpHurtEnemy); + 1: AddVoice(sndGonnaGetYou, vpHurtEnemy); + 2: AddVoice(sndIllGetYou, vpHurtEnemy); + 3: AddVoice(sndJustYouWait, vpHurtEnemy); + end // Missed shot // A miss is defined as a shot with a damaging weapon with 0 kills, 0 damage, 0 hogs poisoned and 0 targets hit @@ -308,16 +375,21 @@ StepDamageGiven:= 0; StepPoisoned:= false; StepDied:= false; + GotRevenge:= false; end; Kills:= 0; KillsClan:= 0; +KillsTeam:= 0; DamageClan:= 0; +DamageTeam:= 0; DamageTurn:= 0; HitTargets:= 0; PoisonClan:= 0; +PoisonTeam:= 0; PoisonTurn:= 0; AmmoUsedCount:= 0; +LeaveMeAlone:= false; AmmoDamagingUsed:= false; isTurnSkipped:= false; end; @@ -513,16 +585,20 @@ procedure initModule; begin DamageClan := 0; + DamageTeam := 0; DamageTotal := 0; DamageTurn := 0; PoisonClan := 0; + PoisonTeam := 0; PoisonTurn := 0; KillsClan := 0; + KillsTeam := 0; Kills := 0; KillsTotal := 0; HitTargets := 0; AmmoUsedCount := 0; AmmoDamagingUsed := false; + LeaveMeAlone := false; SkippedTurns:= 0; isTurnSkipped:= false; vpHurtSameClan:= nil; diff -r 8a0d69c16cad -r 9c817b2eedae hedgewars/uTeams.pas --- a/hedgewars/uTeams.pas Wed Oct 31 23:36:05 2018 +0100 +++ b/hedgewars/uTeams.pas Thu Nov 01 02:55:22 2018 +0300 @@ -435,7 +435,7 @@ NextClan:= false; end; - if (GameFlags and gfSwitchHog) <> 0 then + if ((GameFlags and gfSwitchHog) <> 0) and not(CurrentTeam^.hasGone) then begin g:= AddGear(hwRound(CurrentHedgehog^.Gear^.X), hwRound(CurrentHedgehog^.Gear^.Y), gtSwitcher, 0, _0, _0, 0); CurAmmoGear:= g; @@ -446,13 +446,12 @@ end; IsGetAwayTime:= false; +// turn start taunt: sndYesSir for own team, sndHmm for enemy or computer team if (TurnTimeLeft > 0) and (CurrentHedgehog^.BotLevel = 0) then begin if CurrentTeam^.ExtDriven then begin - if GetRandom(2) = 0 then - AddVoice(sndIllGetYou, CurrentTeam^.voicepack) - else AddVoice(sndJustYouWait, CurrentTeam^.voicepack) + AddVoice(sndHmm, CurrentTeam^.voicepack) end else begin @@ -468,9 +467,7 @@ begin if TurnTimeLeft > 0 then begin - if GetRandom(2) = 0 then - AddVoice(sndIllGetYou, CurrentTeam^.voicepack) - else AddVoice(sndJustYouWait, CurrentTeam^.voicepack) + AddVoice(sndHmm, CurrentTeam^.voicepack) end; ReadyTimeLeft:= 0 end; @@ -708,6 +705,7 @@ CurrentHedgehog^.Gear:= Gear; CurrentHedgehog^.Name:= id; CurrentHedgehog^.InitialHealth:= Gear^.Health; + CurrentHedgehog^.RevengeHog:= nil; CurrHedgehog:= HedgehogsNumber; inc(HedgehogsNumber) end diff -r 8a0d69c16cad -r 9c817b2eedae hedgewars/uTypes.pas --- a/hedgewars/uTypes.pas Wed Oct 31 23:36:05 2018 +0100 +++ b/hedgewars/uTypes.pas Thu Nov 01 02:55:22 2018 +0300 @@ -121,7 +121,7 @@ vgtSmoothWindBar, vgtStraightShot, vgtNoPlaceWarn); // Damage can be caused by different sources - TDamageSource = (dsUnknown, dsFall, dsBullet, dsExplosion, dsShove, dsPoison); + TDamageSource = (dsUnknown, dsFall, dsBullet, dsExplosion, dsShove, dsPoison, dsHammer); // Available sounds TSound = (sndNone, @@ -154,7 +154,8 @@ sndCustom5, sndCustom6, sndCustom7, sndCustom8, sndMinigun, sndFlamethrower, sndIceBeamIdle, sndLandGun, sndCaseImpact, sndExtraDamage, sndFirePunchHit, sndGrenade, sndThisOneIsMine, sndWhatThe, sndSoLong, sndOhDear, sndGonnaGetYou, sndDrat, sndBugger, sndAmazing, - sndBrilliant, sndExcellent, sndFire, sndWatchThis, sndRunAway); + sndBrilliant, sndExcellent, sndFire, sndWatchThis, sndRunAway, sndRevenge, sndCutItOut, + sndLeaveMeAlone, sndOuch, sndHmm); // Available ammo types to be used by hedgehogs TAmmoType = (amNothing, amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amPickHammer, // 6 @@ -330,17 +331,19 @@ end; TStatistics = record - DamageRecv, - DamageGiven: Longword; - StepDamageRecv, - StepDamageGiven, - StepKills: Longword; - StepPoisoned, - StepDied, - Sacrificed: boolean; - MaxStepDamageRecv, - MaxStepDamageGiven, - MaxStepKills: Longword; + DamageRecv, // total damage received + DamageGiven: Longword; // total damage dealt + StepDamageRecvInRow, // number of enemy turns in row this hog received any damage + StepDamageRecv, // damage received in this turn + StepDamageGiven, // damage dealt in this turn + StepKills: Longword; // kills in this turn + StepPoisoned, // whether hog got poisoned this turn + StepDied, // whether hog died this turn + Sacrificed, // whether hog was sacrificed in suicide attack (kamikaze, piano) + GotRevenge: boolean; // whether hog got revenge in this turn + MaxStepDamageRecv, // most damage received in one turn + MaxStepDamageGiven, // most damage dealt in one turn + MaxStepKills: Longword; // most kills in one turn FinishedTurns: Longword; end; @@ -381,6 +384,7 @@ TVoice = record snd: TSound; voicepack: PVoicePack; + isFallback: boolean; end; THHAmmo = array[0..cMaxSlotIndex, 0..cMaxSlotAmmoIndex] of TAmmo; @@ -412,6 +416,7 @@ Timer: Longword; HealthBarHealth: LongInt; Effects: array[THogEffect] of LongInt; + RevengeHog: PHedgehog; // For which hog this hog wants revenge most. For sndRevenge taunt end; TTeam = record diff -r 8a0d69c16cad -r 9c817b2eedae hedgewars/uVariables.pas --- a/hedgewars/uVariables.pas Wed Oct 31 23:36:05 2018 +0100 +++ b/hedgewars/uVariables.pas Thu Nov 01 02:55:22 2018 +0300 @@ -89,6 +89,7 @@ CheckSum : LongWord; CampaignVariable: shortstring; GameTicks : LongWord; + OuchTauntTimer : LongWord; // Timer which blocks sndOuch from being played too often and fast GameState : TGameState; GameType : TGameType; InputMask : LongWord; @@ -2807,6 +2808,7 @@ CursorMovementX := 0; CursorMovementY := 0; GameTicks := 0; + OuchTauntTimer := 0; CheckSum := 0; cWaterLine := LAND_HEIGHT; cGearScrEdgesDist := 240; diff -r 8a0d69c16cad -r 9c817b2eedae rust/integral-geometry/src/lib.rs --- a/rust/integral-geometry/src/lib.rs Wed Oct 31 23:36:05 2018 +0100 +++ b/rust/integral-geometry/src/lib.rs Thu Nov 01 02:55:22 2018 +0300 @@ -37,6 +37,87 @@ pub fn max_norm(self) -> i32 { std::cmp::max(self.x.abs(), self.y.abs()) } + + #[inline] + pub fn transform(self, matrix: &[i32; 4]) -> Self { + Point::new(matrix[0] * self.x + matrix[1] * self.y, + matrix[2] * self.x + matrix[3] * self.y) + } +} + +#[derive(PartialEq, Eq, Clone, Copy, Debug)] +pub struct Size { + pub width: usize, + pub height: usize, +} + +impl Size { + #[inline] + pub fn new(width: usize, height: usize) -> Self { + Size { width, height } + } + + #[inline] + pub fn square(size: usize) -> Self { + Size { width: size, height: size } + } + + #[inline] + pub fn area(&self) -> usize { + self.width * self.height + } + + #[inline] + pub fn linear_index(&self, x: usize, y: usize) -> usize { + y * self.width + x + } + + #[inline] + pub fn is_power_of_two(&self) -> bool { + self.width.is_power_of_two() && self.height.is_power_of_two() + } + + #[inline] + pub fn next_power_of_two(&self) -> Self { + Self { + width: self.width.next_power_of_two(), + height: self.height.next_power_of_two() + } + } + + #[inline] + pub fn to_mask(&self) -> SizeMask { + SizeMask::new(*self) + } +} + +pub struct SizeMask{ size: Size } + +impl SizeMask { + #[inline] + pub fn new(size: Size) -> Self { + assert!(size.is_power_of_two()); + let size = Size { + width: !(size.width - 1), + height: !(size.height - 1) + }; + SizeMask { size } + } + + #[inline] + pub fn contains_x>(&self, x: T) -> bool { + (self.size.width & x.into()) == 0 + } + + #[inline] + pub fn contains_y>(&self, y: T) -> bool { + (self.size.height & y.into()) == 0 + } + + #[inline] + pub fn contains(&self, point: Point) -> bool { + self.contains_x(point.x as usize) && self.contains_y(point.y as usize) + } } macro_rules! bin_op_impl { diff -r 8a0d69c16cad -r 9c817b2eedae rust/land2d/src/lib.rs --- a/rust/land2d/src/lib.rs Wed Oct 31 23:36:05 2018 +0100 +++ b/rust/land2d/src/lib.rs Thu Nov 01 02:55:22 2018 +0300 @@ -3,30 +3,24 @@ use std::cmp; -use integral_geometry::{ArcPoints, EquidistantPoints, LinePoints, Point}; +use integral_geometry::{ + ArcPoints, EquidistantPoints, LinePoints, + Point, Size, SizeMask +}; pub struct Land2D { pixels: vec2d::Vec2D, - play_width: usize, - play_height: usize, - width_mask: usize, - height_mask: usize, + play_size: Size, + mask: SizeMask } impl Land2D { - pub fn new(play_width: usize, play_height: usize, fill_value: T) -> Self { - let real_width = play_width.next_power_of_two(); - let real_height = play_height.next_power_of_two(); - - assert!(real_width > 0); - assert!(real_height > 0); - + pub fn new(play_size: Size, fill_value: T) -> Self { + let real_size = play_size.next_power_of_two(); Self { - pixels: vec2d::Vec2D::new(real_width, real_height, fill_value), - play_width, - play_height, - width_mask: !(real_width - 1), - height_mask: !(real_height - 1), + play_size, + pixels: vec2d::Vec2D::new(real_size, fill_value), + mask: real_size.to_mask() } } @@ -41,23 +35,33 @@ } #[inline] + pub fn size(&self) -> Size { + self.pixels.size() + } + + #[inline] pub fn play_width(&self) -> usize { - self.play_width + self.play_size.width } #[inline] pub fn play_height(&self) -> usize { - self.play_height + self.play_size.height + } + + #[inline] + pub fn play_size(&self) -> Size { + self.play_size } #[inline] pub fn is_valid_x(&self, x: i32) -> bool { - (x as usize & self.width_mask) == 0 + self.mask.contains_x(x as usize) } #[inline] pub fn is_valid_y(&self, y: i32) -> bool { - (y as usize & self.height_mask) == 0 + self.mask.contains_y(y as usize) } #[inline] @@ -66,6 +70,11 @@ } #[inline] + pub fn rows(&self) -> impl Iterator { + self.pixels.rows() + } + + #[inline] pub fn map U>(&mut self, y: i32, x: i32, f: F) -> U { if self.is_valid_coordinate(x, y) { unsafe { @@ -230,6 +239,30 @@ .sum() } + fn fill_row(&mut self, center: Point, offset: Point, value: T) -> usize { + let row_index = center.y + offset.y; + if self.is_valid_y(row_index) { + let from_x = cmp::max(0, center.x - offset.x) as usize; + let to_x = cmp::min(self.width() - 1, (center.x + offset.x) as usize); + self.pixels[row_index as usize][from_x..=to_x] + .iter_mut().for_each(|v| *v = value); + to_x - from_x + 1 + } else { + 0 + } + } + + pub fn fill_circle(&mut self, center: Point, radius: i32, value: T) -> usize { + let transforms = + [[0, 1, 1, 0], [0, 1, -1, 0], + [1, 0, 0, 1], [1, 0, 0, -1]]; + ArcPoints::new(radius).map(|vector| { + transforms.iter().map(|m| + self.fill_row(center, vector.transform(m), value) + ).sum::() + }).sum() + } + pub fn draw_thick_line(&mut self, from: Point, to: Point, radius: i32, value: T) -> usize { let mut result = 0; @@ -256,7 +289,7 @@ #[test] fn basics() { - let l: Land2D = Land2D::new(30, 50, 0); + let l: Land2D = Land2D::new(Size::new(30, 50), 0); assert_eq!(l.play_width(), 30); assert_eq!(l.play_height(), 50); @@ -273,7 +306,7 @@ #[test] fn fill() { - let mut l: Land2D = Land2D::new(128, 128, 0); + let mut l: Land2D = Land2D::new(Size::square(128), 0); l.draw_line(Point::new(0, 0), Point::new(32, 96), 1); l.draw_line(Point::new(32, 96), Point::new(64, 32), 1); diff -r 8a0d69c16cad -r 9c817b2eedae rust/landgen/src/template_based.rs --- a/rust/landgen/src/template_based.rs Wed Oct 31 23:36:05 2018 +0100 +++ b/rust/landgen/src/template_based.rs Thu Nov 01 02:55:22 2018 +0300 @@ -1,7 +1,6 @@ use itertools::Itertools; -use integral_geometry::Point; -use integral_geometry::Rect; +use integral_geometry::{Point, Size, Rect}; use land2d::Land2D; use LandGenerationParameters; use LandGenerator; @@ -9,8 +8,7 @@ struct OutlinePoints { islands: Vec>, fill_points: Vec, - width: usize, - height: usize, + size: Size, } impl OutlinePoints { @@ -33,18 +31,14 @@ }).collect() }).collect(), fill_points: outline_template.fill_points.clone(), - width: outline_template.width, - height: outline_template.height, + size: outline_template.size } } - fn for_each(&mut self, f: F) { - self.islands - .iter_mut() + fn iter_mut(&mut self) -> impl Iterator { + self.islands.iter_mut() .flat_map(|i| i.iter_mut()) .chain(self.fill_points.iter_mut()) - .into_iter() - .for_each(f); } fn distort>(&mut self, random_numbers: &mut I) { @@ -55,8 +49,7 @@ struct OutlineTemplate { islands: Vec>, fill_points: Vec, - width: usize, - height: usize, + size: Size, can_flip: bool, can_invert: bool, can_mirror: bool, @@ -82,23 +75,22 @@ let mut points = OutlinePoints::from_outline_template(&self.outline_template, random_numbers); - let mut land = Land2D::new(points.width, points.height, parameters.basic); + let mut land = Land2D::new(points.size, parameters.basic); let top_left = Point::new( (land.width() - land.play_width() / 2) as i32, (land.height() - land.play_height()) as i32, ); - points.width = land.width(); - points.height = land.height(); + points.size = land.size(); - points.for_each(|p| *p += top_left); + points.iter_mut().for_each(|p| *p += top_left); // mirror if self.outline_template.can_mirror { if let Some(b) = random_numbers.next() { if b & 1 != 0 { - points.for_each(|p| p.x = land.width() as i32 - 1 - p.x); + points.iter_mut().for_each(|p| p.x = land.width() as i32 - 1 - p.x); } } } @@ -107,7 +99,8 @@ if self.outline_template.can_flip { if let Some(b) = random_numbers.next() { if b & 1 != 0 { - points.for_each(|p| p.y = land.height() as i32 - 1 - p.y); + points.iter_mut().for_each(|p| + p.y = land.height() as i32 - 1 - p.y); } } } @@ -131,10 +124,9 @@ let mut points = OutlinePoints { islands: vec![vec![]], fill_points: vec![Point::new(1, 1)], - width: 100, - height: 100, + size: Size::square(100) }; - points.for_each(|p| p.x = 2); + points.iter_mut().for_each(|p| p.x = 2); assert_eq!(points.fill_points[0].x, 2); } diff -r 8a0d69c16cad -r 9c817b2eedae rust/theme-editor/Cargo.toml --- a/rust/theme-editor/Cargo.toml Wed Oct 31 23:36:05 2018 +0100 +++ b/rust/theme-editor/Cargo.toml Thu Nov 01 02:55:22 2018 +0300 @@ -13,4 +13,5 @@ land2d = { path = "../land2d" } landgen = { path = "../landgen" } lfprng = { path = "../lfprng" } +integral-geometry = { path = "../integral-geometry" } rand = "0.5" \ No newline at end of file diff -r 8a0d69c16cad -r 9c817b2eedae rust/theme-editor/src/main.rs --- a/rust/theme-editor/src/main.rs Wed Oct 31 23:36:05 2018 +0100 +++ b/rust/theme-editor/src/main.rs Thu Nov 01 02:55:22 2018 +0300 @@ -1,10 +1,17 @@ use sdl2::{ keyboard::Scancode, - event::EventType + event::EventType, + surface::Surface, + pixels::{ + PixelFormatEnum, Color + } }; +use integral_geometry::{Point, Size}; + use rand::{ - thread_rng, RngCore + thread_rng, RngCore, Rng, + distributions::uniform::SampleUniform }; use landgen::{ @@ -33,6 +40,32 @@ } } +fn fill_pixels(pixels: &mut [u8], land: &Land2D) { + for (surf_row, land_row) in pixels.chunks_mut(land.width() * 4).zip(land.rows()) { + for (surf_pixel, land_pixel) in surf_row.chunks_mut(4).zip(land_row) { + if let [b, g, r, a] = surf_pixel { + *a = 255; *r = *land_pixel as u8; + } + } + } +} + +fn fill_texture(surface: &mut Surface, land: &Land2D) { + if surface.must_lock() { + surface.with_lock_mut(|data| fill_pixels(data, land)); + } else { + surface.without_lock_mut().map(|data| fill_pixels(data, land)); + } +} + +fn rnd(max: T) -> T { + thread_rng().gen_range(T::default(), max) +} + +const WIDTH: u32 = 512; +const HEIGHT: u32 = 512; +const SIZE: Size = Size {width: 512, height: 512}; + fn main() { let sdl = sdl2::init().unwrap(); let _image = sdl2::image::init(sdl2::image::INIT_PNG).unwrap(); @@ -40,10 +73,30 @@ let mut pump = sdl.event_pump().unwrap(); let video = sdl.video().unwrap(); - let _window = video.window("Theme Editor", 640, 480) + let window = video.window("Theme Editor", WIDTH, HEIGHT) .position_centered() .build().unwrap(); + let mut land_surf = Surface::new(WIDTH, HEIGHT, PixelFormatEnum::ARGB8888).unwrap(); + + fn point() -> Point { + Point::new(rnd(WIDTH as i32), rnd(HEIGHT as i32)) + } + + let mut land = Land2D::new(SIZE, 0); + for i in 0..32 { + land.draw_thick_line(point(), point(), rnd(5), u32::max_value()); + + land.fill_circle(point(), rnd(60), u32::max_value()); + } + + fill_texture(&mut land_surf, &land); + + let mut win_surf = window.surface(&pump).unwrap(); + let win_rect = win_surf.rect(); + land_surf.blit(land_surf.rect(), &mut win_surf, win_rect).unwrap(); + win_surf.update_window(); + 'pool: loop { use sdl2::event::Event::*; pump.pump_events(); @@ -53,8 +106,6 @@ Quit{ .. } => break 'pool, _ => () } - } + } } -} - - +} \ No newline at end of file diff -r 8a0d69c16cad -r 9c817b2eedae rust/vec2d/Cargo.toml --- a/rust/vec2d/Cargo.toml Wed Oct 31 23:36:05 2018 +0100 +++ b/rust/vec2d/Cargo.toml Thu Nov 01 02:55:22 2018 +0300 @@ -4,3 +4,4 @@ authors = ["Andrey Korotaev "] [dependencies] +integral-geometry = { path = "../integral-geometry" } diff -r 8a0d69c16cad -r 9c817b2eedae rust/vec2d/src/lib.rs --- a/rust/vec2d/src/lib.rs Wed Oct 31 23:36:05 2018 +0100 +++ b/rust/vec2d/src/lib.rs Thu Nov 01 02:55:22 2018 +0300 @@ -1,10 +1,12 @@ +extern crate integral_geometry; + use std::ops::{Index, IndexMut}; use std::slice::SliceIndex; +use integral_geometry::Size; pub struct Vec2D { data: Vec, - width: usize, - height: usize, + size: Size, } impl Index for Vec2D { @@ -12,62 +14,70 @@ #[inline] fn index(&self, row: usize) -> &[T] { - debug_assert!(row < self.height); + debug_assert!(row < self.height()); - let pos = row * self.width; + let pos = row * self.width(); - &self.data[pos..pos + self.width] + &self.data[pos..pos + self.width()] } } impl IndexMut for Vec2D { #[inline] fn index_mut(&mut self, row: usize) -> &mut [T] { - debug_assert!(row < self.height); + debug_assert!(row < self.height()); + + let pos = row * self.width(); + + &mut self.data[pos..pos + self.size.width] + } +} - let pos = row * self.width; +impl Vec2D { + #[inline] + pub fn width(&self) -> usize { + self.size.width + } - &mut self.data[pos..pos + self.width] + #[inline] + pub fn height(&self) -> usize { + self.size.height + } + + #[inline] + pub fn size(&self) -> Size { + self.size } } impl Vec2D { - pub fn new(width: usize, height: usize, value: T) -> Self { - Self { - data: vec![value; width * height], - width, - height, - } - } - - #[inline] - pub fn width(&self) -> usize { - self.width - } - - #[inline] - pub fn height(&self) -> usize { - self.height + pub fn new(size: Size, value: T) -> Self { + Self { size, data: vec![value; size.area()] } } #[inline] pub fn get(&self, row: usize, column: usize) -> Option<&>::Output> { - self.data.get(row * self.width + column) + self.data.get(row * self.width() + column) } #[inline] pub fn get_mut(&mut self, row: usize, column: usize) -> Option<&mut >::Output> { - self.data.get_mut(row * self.width + column) + self.data.get_mut(row * self.size.width + column) } #[inline] pub unsafe fn get_unchecked(&self, row: usize, column: usize) -> &>::Output { - self.data.get_unchecked(row * self.width + column) + self.data.get_unchecked(row * self.width() + column) } #[inline] pub unsafe fn get_unchecked_mut(&mut self, row: usize, column: usize) -> &mut >::Output { - self.data.get_unchecked_mut(row * self.width + column) + self.data.get_unchecked_mut(row * self.size.width + column) + } + + #[inline] + pub fn rows(&self) -> impl Iterator { + self.data.chunks(self.width()) } } @@ -77,10 +87,10 @@ #[test] fn basics() { - let mut v: Vec2D = Vec2D::new(2, 3, 0xff); + let mut v: Vec2D = Vec2D::new(Size::new(2, 3), 0xff); - assert_eq!(v.width, 2); - assert_eq!(v.height, 3); + assert_eq!(v.width(), 2); + assert_eq!(v.height(), 3); assert_eq!(v[0][0], 0xff); assert_eq!(v[2][1], 0xff); diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/de.lua --- a/share/hedgewars/Data/Locale/de.lua Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/de.lua Thu Nov 01 02:55:22 2018 +0300 @@ -157,7 +157,7 @@ ["Attack Captain Lime before he attacks back"]="Greif Leutnant Limone an, bevor er angreift.", ["Attack From Rope: %s"] = "Angriff Vom Seil: %s", -- WxW ["Attack From Rope: You may only attack from a rope."] = "Angriff Vom Seil: Du darfst nur vom Seil angreifen.", -- WxW -["Attack rule: %s"] = "Angriffsregel", -- WxW +["Attack rule: %s"] = "Angriffsregel: %s", -- WxW ["Attack: Select this continent"] = "Angreifen: Diesen Kontinent wählen", -- Continental_supplies ["Attack: [Space]"] = "Angreifen: [Leertaste]", -- Basic_Training_-_Bazooka, Basic_Training_-_Grenade, Basic_Training_-_Movement, Basic_Training_-_Rope ["Attack the assassins before they attack back"]="Greif die Assassinen an, bevor sie angreifen.", @@ -715,7 +715,7 @@ ["Fuel: %d"] = "Treibstoff: %d", -- Tumbler ["Fuzzy Beard"] = "Stoppelbart", -- ["“g=150”, where 150 is 150% of normal gravity."] = "»g=150«, wobei die »150« für 150% der Normalschwerkraft steht.", -- Gravity -["“g=50, g2=150, period=4000” for gravity changing|from 50 to 150 and back with period of 4000 ms."] = "»g=50, g2=150, period=4000«, für Schwerkraft,|die von 50% bis 150% wechselt mit einer Periode von 4000ms.", -- Gravity +["“g=50, g2=150, period=4000” for gravity changing|from 50 to 150 and back with period of 4000 ms."] = "»g=50, g2=150, period=4000«, für Schwerkraft,|die von 50 bis 150 wechselt mit einer Periode von 4000ms.", -- Gravity ["Galaxy Guardians"] = "Galaxiewächter", -- Big_Armory ["Game Modifiers: "]="Spiel-Modifikatoren: ", ["Game over!"] = "Spiel vorbei!", -- Space_Invasion @@ -1908,8 +1908,8 @@ ["Shield is fully recharged!"]="Schild vollständig aufgeladen!", ["Shield Master! +10 points!"] = "Schildmeister! +10 Punkte!", -- Space_Invasion ["Shield Miser! +%d points!"] = "Schildgeiz! +%d Punkte!", -- Space_Invasion -["Shield OFF: %d power remaining"] = "Schild AUS: %s Energie verbleibend", -- Space_Invasion -["Shield ON: %d power remaining"] = "Schild EIN: %s Energie verbleibend", -- Space_Invasion +["Shield OFF: %d power remaining"] = "Schild AUS: %d Energie verbleibend", -- Space_Invasion +["Shield ON: %d power remaining"] = "Schild EIN: %d Energie verbleibend", -- Space_Invasion ["Shield Seeker! +10 points!"] = "Schildsucher! +10 Punkte!", -- Space_Invasion ["Shinobi"] = "Shinobi", -- ["%s hit the ground."] = "%s traf den Boden.", -- User_Mission_-_Rope_Knock_Challenge diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/es.lua --- a/share/hedgewars/Data/Locale/es.lua Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/es.lua Thu Nov 01 02:55:22 2018 +0300 @@ -81,7 +81,7 @@ -- ["Amazing! I was never beaten in a race before!"] = "", -- A_Space_Adventure:moon02 -- ["Ammo depleted!"] = "", -- Space_Invasion -- ["Ammo: %d"] = "", -- Tumbler - ["Ammo is reset at the end of your turn."] = "", +-- ["Ammo is reset at the end of your turn."] = "", -- ["Ammo Limit: Hogs can’t have more than 1 ammo per type"] = "", -- Highlander -- ["Ammo Maniac! +5 points!"] = "", -- Space_Invasion -- ["A mysterious Box"] = "", -- Basic_Training_-_Movement diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/hedgewars_ja.ts --- a/share/hedgewars/Data/Locale/hedgewars_ja.ts Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_ja.ts Thu Nov 01 02:55:22 2018 +0300 @@ -3344,11 +3344,11 @@ long jump - 遠いジャンプ + 幅跳び high jump - 高いジャンプ + 高跳び slot 10 @@ -3423,7 +3423,7 @@ binds (descriptions) Traverse gaps and obstacles by jumping: - 隙間や障害物を飛び越える: + 隙間や障害物を跳び越える: Fire your selected weapon or trigger an utility item: diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/hedgewars_pl.ts --- a/share/hedgewars/Data/Locale/hedgewars_pl.ts Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_pl.ts Thu Nov 01 02:55:22 2018 +0300 @@ -959,11 +959,11 @@ Reason: - + Powód: The connection was refused by the official server or timed out. Something seems to be wrong with the official server at the moment. This might be a temporary problem. Please try again later. - + Połączenie zostało odrzucone przez oficjalny serwer lub przekroczyło limit czasu. Coś zdaje się być w tej chwili nie w porządku z oficjalnym serwerem. To może być tymczasowy problem. Proszę spróbować ponownie. The connection was refused by the host or timed out. This might have one of the following reasons: @@ -972,7 +972,12 @@ - There is a temporary network problem Please check the host name and port settings and/or try again later. - + Połączenie zostało odrzucone przez hosta lub przekroczyło limit czasu. Może to mieć jeden z poniższych powodów: +- Program Serwera Hedgewars aktualnie nie chodzi na hoście +- Podany numer portu jest nieprawidłowy +- Jest tymczasowy problem z siecią + +Sprawdź nazwę hosta i ustawienia portu i/lub spróbuj ponownie później. @@ -1515,7 +1520,7 @@ With everyone having the same clan color, there was no reason to fight. And so the hedgehogs happily lived in peace ever after. - + Ponieważ każdy miał taki sam kolor klanu, nie było powodu do walki. I tak jeże żyły w pokoju długo i szczęśliwie. @@ -1592,7 +1597,7 @@ Open the Hedgewars online game manual in your web browser - + Otwórz podręcznik online Hedgewars w swojej przeglądarce internetowej @@ -2166,11 +2171,11 @@ Land can not be destroyed by most weapons. - + Teren nie może zostać zniszczony przez większość broni. %1 (%2) - %1 (%2) + %1 (%2) @@ -2511,11 +2516,11 @@ Dampen when losing focus Checkbox text. If checked, the in-game audio volume is reduced (=dampened) when the game window loses its focus - + Przycisz w tle Reduce the game audio volume if the game window has lost its focus - + Zmniejsz głośność audio, gdy okno gry działa w tle @@ -3312,19 +3317,19 @@ The connection to the server is lost. - + Połączenie z serwerem zostało utracone. Schemes - Name already taken - + Schematy - nazwa już zajęta A scheme with the name '%1' already exists. Your scheme has been renamed to '%2'. - + Schemat z nazwą '%1' już istnieje. Twój schemat został przemianowany na '%2'. A weapon scheme with the name '%1' already exists. Changes made to the weapon scheme have been discarded. - + Schemat broni z nazwą '%1' już istnieje. Zmiany dokonane w schemacie broni zostały odrzucone. @@ -3890,7 +3895,7 @@ clan chat - + czat klanu @@ -3996,7 +4001,7 @@ Talk to your clan or all participants: - + Mów do swojego klanu lub wszystkich uczestników: @@ -4837,111 +4842,111 @@ Kicked - + Wyrzucony This server only allows registered users to join. - + Ten serwer pozwala na dołączenie jedynie zarejestrowanym użytkownikom. heads - + orzeł tails - + reszka This server does not support replays! - + Ten serwer nie obsługuje powtórek! /greeting [message]: Set or clear greeting message to be shown to players who join the room - + /greeting [wiadomość]: Ustaw lub wyczyść wiadomość do pokazania graczom, którzy dołączają do pokoju /save <config ID> <config name>: Add current room configuration as votable choice for /callvote map - + /save <ID konfiguracji> <nazwa konfiguracji>: Dodaj aktualną konfigurację jako głosowalny wybór w /callvote map /delete <config ID>: Delete a votable room configuration - + /delete <ID konfiguracji>: Usuń głosowalną konfigurację pokoju /saveroom <file name>: Save all votable room configurations (and the greeting) of this room into a file - + /saveroom <nazwa pliku>: Zapisz wszystkie głosowalne konfiguracje (oraz powitanie) tego pokoju do pliku /loadroom <file name>: Load votable room configurations (and greeting) from a file - + /loadroom <nazwa pliku>: Wczytaj głosowalne konfiguracje pokoju (oraz powitanie) z pliku 'Registered only' state toggled. - + Stan 'tylko zarejestrowani' przełączony. Super power activated. - + Super moc aktywowana. Unknown command or invalid parameters. Say '/help' in chat for a list of commands. - + Nieznana komenda lub nieprawidłowe parametry. Powiedz na czacie '/help' dla listy komend. You can't kick yourself! - + Nie możesz wyrzucić siebie! You can't kick the only other player! - + Nie możesz wyrzucić jedynego innego gracza! The player is not in your room. - + Gracz nie jest w twoim pokoju. This player is protected from being kicked. - + Gracz jest chroniony przed byciem wyrzuconym. You're not the room master or a server admin! - + Nie jesteś mistrzem pokoju ani administratorem serwera! You're already the room master. - + Już jesteś mistrzem pokoju. Greeting message cleared. - + Wiadomość powitalna wyczyszczona. Greeting message set. - + Wiadomość powitalna ustawiona. /callvote kick: This is only allowed in rooms without a room master. - + /callvote kick: To jest dozwolone tylko w pokojach bez mistrza. /callvote map: No maps available. - + /callvote map: Brak dostępnych map. You're the new room master! - + Jesteś nowym mistrzem pokoju! /quit: Quit the server - + /quit: Wyjdź z serwera This command is only available in the lobby. - + Ta komenda jest dostępna tylko w poczekalni. This command is only available in rooms. - + Ta komenda jest dostępna tylko w pokojach. diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/it.lua --- a/share/hedgewars/Data/Locale/it.lua Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/it.lua Thu Nov 01 02:55:22 2018 +0300 @@ -237,7 +237,7 @@ -- ["Bob"] = "", -- A_Space_Adventure:cosmos -- ["Bobo"] = "", -- User_Mission_-_Nobody_Laugh ["Bone Jackson"] = "Jackson Ossa", -- A_Classic_Fairytale:backstab - ["Bonely"] = "", -- A_Classic_Fairytale:shadow +-- ["Bonely"] = "", -- A_Classic_Fairytale:shadow -- ["Bones"] = "", -- -- ["BOOM! BOOM! BOOM! %s are the masters of destruction with %d destroyed invaders."] = "", -- Space_Invasion ["Boom!"] = "Kaboom!", diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/ja.txt --- a/share/hedgewars/Data/Locale/ja.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/ja.txt Thu Nov 01 02:55:22 2018 +0300 @@ -52,7 +52,7 @@ 00:49=更生 00:50=ドリル空襲 00:51=泥玉 -00:52=武器を携えない +00:52=武器なし 00:53=時空移動装置 00:54=土スプレー 00:55=冷凍ガン @@ -63,26 +63,26 @@ 00:60=ガトリング銃 01:00=ロード中。。。 -01:01=ドロー! -01:02=%1の勝ち! +01:01=ドローです! +01:02=%1の勝ちです! 01:03=音量%1% 01:04=ポーズ 01:05=ゲームをやめますか(%1/%2)? -01:06=サドンデス! -01:07=残り%1 +01:06=サドンデス時間になりました! +01:07=残り%1撃 01:08=燃料%1% 01:09=同期中。。。 01:10=この道具はターンを終えなくても使えます! 01:11=この武器や道具はまだ使えません! 01:12=サドンデスまでの最後のターン! 01:13=サドンデスまで残り%1ターン! -01:14=%1、準備を! +01:14=%1の準備時間です! 01:15=わずかな 01:16=低い 01:17=通常の 01:18=高い 01:19=極端な -01:20=%1弾み +01:20=%1弾力 01:21=オーディオミュート 01:22=自動スキップ有効 01:23=自動キャメラ有効 @@ -93,13 +93,13 @@ 01:27=+%1 01:28=何もありません! 01:29=未知のキー -01:30=%1と%2の勝ち! -01:31=%1と%2と%3の勝ち! -01:32=%1と%2と%3と%4の勝ち! -01:33=%1と%2と%3と%4と%5の勝ち! -01:34=%1と%2と%3と%4と%5と%6の勝ち! -01:35=%1と%2と%3と%4と%5と%6と%7の勝ち! -01:36=みんなの勝ち! +01:30=%1と%2の勝ちです! +01:31=%1と%2と%3の勝ちです! +01:32=%1と%2と%3と%4の勝ちです! +01:33=%1と%2と%3と%4と%5の勝ちです! +01:34=%1と%2と%3と%4と%5と%6の勝ちです! +01:35=%1と%2と%3と%4と%5と%6と%7の勝ちです! +01:36=みんなの勝ちです! 01:37=%1が去りました。 01:38=%1が戻りました。 01:39=%1が自動的にターンをスキップしました。 @@ -356,21 +356,21 @@ 03:60=最強の機関銃 ; Weapon Descriptions (use | as line breaks) -04:00=シンプルな手榴弾で敵を攻撃する。|タイマーが0になると、爆発します。|「1-5」: 手榴弾タイマーをセットする|「正確な狙い」+「1-5」: 手榴弾の弾性を調整する|「攻撃」: 長押しでより遠く投げます -04:01=クラスター弾で敵を攻撃する。|タイマーが0になると、小さな爆弾に分割されます。|「1-5」: 手榴弾タイマーをセットする|「正確な狙い」+「1-5」: 手榴弾の弾性を調整する|「攻撃」: 長押しでより遠く投げます +04:00=シンプルな手榴弾で敵を攻撃する。|タイマーが0になると、爆発します。|「1-5」: 手榴弾タイマーをセットする|「正確な狙い」+「1-5」: 手榴弾の弾力を調整する|「攻撃」: 長押しでより遠く投げます +04:01=クラスター弾で敵を攻撃する。|タイマーが0になると、小さな爆弾に分割されます。|「1-5」: 手榴弾タイマーをセットする|「正確な狙い」+「1-5」: 手榴弾の弾力を調整する|「攻撃」: 長押しでより遠く投げます 04:02=風に影響される弾道発射体で敵を攻撃する。|「攻撃」: 長押しでより遠く発射します 04:03=選択した目標にロックし、爆発的な蜂を発射する。|正確に攻撃するためには、全力で打たないほうがお勧めです。|「カーソル」: 標的を置く|「攻撃」: 長押しでより遠く発射します 04:04=二発の散弾銃で敵を攻撃する。|弾のダメージ範囲が広いため、正確な狙いが必要ありません。|「攻撃」: 撃つ(複数) 04:05=地下に移動しましょう!|地面に穴を開けると他の領域に到達できるようになります。|「攻撃」: 掘りの開始か停止をする 04:06=敵を攻撃する方法が見当たらない時にはこれ!|ターンをスキップすればいいんです。|「攻撃」: ターンを終える -04:07=ロープを使って、巨大な距離でも超えられます。|慣性を利用して敵を端から押し出すこともできます。|「攻撃」: ロップを投げるか離す|「カーソル」: 揺れる|「長いジャンプ」: 手榴弾か同類の武器を投げる -04:08=狭いトンエルで地雷を置くと、敵が迂闊に近寄れないようにできます|自分で地雷を起動させる前に撤退してください!|「攻撃」: 地雷を足元に置く|「正確な狙い」+「1-5」: 地雷の弾性を調整する +04:07=ロープを使って、巨大な距離でも超えられます。|慣性を利用して敵を端から押し出すこともできます。|「攻撃」: ロップを投げるか離す|「カーソル」: 揺れる|「幅跳び」: 手榴弾か同類の武器を投げる +04:08=狭いトンエルで地雷を置くと、敵が迂闊に近寄れないようにできます|自分で地雷を起動させる前に撤退してください!|「攻撃」: 地雷を足元に置く|「正確な狙い」+「1-5」: 地雷の弾力を調整する 04:09=狙いに自信を持たない時には、デザートイーグルの出番です|4発まで撃つことができます。|「攻撃」: 撃つ(複数) 04:10=古代であり強力な爆発物です。|敵の足元に置いてから撤退することをわすれないでください。|「攻撃」: ダイナマイトを足元に置く 04:11=海に打ち込んで、敵の針鼠を始末しよう!|地雷などを敵側に送ることもできます。|「攻撃」: 前にある全てを打つ 04:12=敵に近づくことさえできれば、この強力な武術の使用が可能になります|「攻撃」: 昇竜拳の技を発動する 04:13=UNUSED -04:14=パラシュートさえあれば高所恐怖症も問題になりません!|自由落下が早すぎると、自動的に開いて針鼠を落下ダメージから守ります。|「攻撃」: パラシュートを開くか閉じる|「上下左右」: 飛ぶ方向を調整する|「長いジャンプ」: 手榴弾か同類の武器を投げる +04:14=パラシュートさえあれば高所恐怖症も問題になりません!|自由落下が早すぎると、自動的に開いて針鼠を落下ダメージから守ります。|「攻撃」: パラシュートを開くか閉じる|「上下左右」: 飛ぶ方向を調整する|「幅跳び」: 手榴弾か同類の武器を投げる 04:15=敵を攻撃する飛行機を呼ぶ|「左右」: 攻撃方向を決める|「カーソル」: 標的を置く 04:16=敵の上に大量の地雷を落とす飛行機を呼ぶ|「左右」: 攻撃方向を決める|「カーソル」: 標的を置く 04:17=避難する時にはブローランプがちからになります。|地面にトンエルを掘ると、敵の攻撃からの防御になります。|「上下」: 掘る方向を調整する|「攻撃」: 掘りの開始か停止をする @@ -382,7 +382,7 @@ 04:23=針鼠の最後の手段です。決めた方向に飛び出して、|当たる全てにダメージを与えます|「攻撃」: 攻撃を開始する 04:24=お誕生日おめでとうございます!|ケーキを敵側に歩かせて、爆発的なパーティーを齎すことができます|ほぼ全ての地形を乗り越えることができますが、歩く距離が限られています。|「攻撃」: ケーキを動かせるか止まって爆発させる 04:25=この変装を使用する針鼠は非常に魅力的になり、|周りにいる針鼠を強く引きます。|その結果として、敵を罠に誘い出すことができます。|「攻撃」: 誘惑を発動する -04:26=うまみと弾みのあるスイカで敵を攻撃する。|タイマーが0になると、爆発的な破片に分割します。|「1-5」: スイカのタイマーをセットする|「攻撃」: 長押しでより遠く投げます +04:26=うまみと弾力のあるスイカで敵を攻撃する。|タイマーが0になると、爆発的な破片に分割します。|「1-5」: スイカのタイマーをセットする|「攻撃」: 長押しでより遠く投げます 04:27=この悪魔の爆弾を投げて、敵を地獄の炎で覆う。|炎は長く燃え続きますので、距離を保つようにしてください。|「攻撃」: 長押しでより遠く投げます 04:28=発砲する間もなく地面を掘り始める弾道発射体です。|タイマーが0になるか、地面を掘り通すかのときに爆発します。|「攻撃」: 長押しでより遠く発射します 04:29=これは子供のおもちゃではありません!|大量の色鮮やかな玉の形をした爆弾を連発します。|「攻撃」: 全力しで撃つ|「上下」: 撃つ間に狙いを調整し続ける @@ -395,12 +395,12 @@ 04:36=狙いが安定しない時には、現代技術がお役に立ちます|「攻撃」: レーザーサイトを有効にする 04:37=日差しを避ける必要がありません。|この効果はターン終了までしか効きませんが、|その間に与えたダメージの80%をHPとして吸収できます。|「攻撃」: 吸血鬼効果を有効にする 04:38=近距離であまり効果がない変わりに、狙撃銃は遠距離で非常に強力の武器になります。|「攻撃」: 一押しで組み込まれているレーザーサイトを有効にします。その後で押すと、射撃します(複数)|「左右」: 向く方向を変える -04:39=空飛ぶ円盤に乗って、どんな辿り着きづらい場所にでも移動できます。|「攻撃」: 空飛ぶ円盤に乗るか降りる|「上左右」: 空飛ぶ円盤をその方向に一押しする|「長いジャンプ」: 手榴弾か同類の武器を投げる|「正確な狙い」+「長いジャンプ」: 十字線の方向に選択された武器を撃つ|「正確な狙い」+「上下」: 狙いを調整する +04:39=空飛ぶ円盤に乗って、どんな辿り着きづらい場所にでも移動できます。|「攻撃」: 空飛ぶ円盤に乗るか降りる|「上左右」: 空飛ぶ円盤をその方向に一押しする|「幅跳び」: 手榴弾か同類の武器を投げる|「正確な狙い」+「幅跳び」: 十字線の方向に選択された武器を撃つ|「正確な狙い」+「上下」: 狙いを調整する 04:40=地面を燃え上げらせる液体を含まれている瓶を投げる|「攻撃」: 長押しでより遠く投げます 04:41=針鼠を載せて敵の上に毒入りの卵を落とす鳥を呼ぶ|「攻撃」: 一押しで呼んで、その後に卵を落とす|「上左右」: その方向に一羽ばたきをする 04:42=この携帯系ポータルガンを使用すれば、|二つのポータルで繋がった位置の間に針鼠や武器を転送できます。|ゴムバンドには効きません。|「攻撃」: ポータルを撃つ|「切り替え」: ポータルの色を切り替える 04:43=破壊力の極めて高いピアノを使って、演奏の初披露をしましょう!|演奏する針鼠も犠牲にしなければいけませんので、|同時に最後になりますけど。|「カーソル」: ピアノを落とす位置を決める|「F1-F9」: ピアノを弾く -04:44=ただのチーズではなくて、もはや生物兵器です!|ダメージが小さい代わりに、その匂いを嗅いでしまった針鼠が毒にあたります|「1-5」: タイマーをセットする|「正確な狙い」+「1-5」: 弾性を調整する|「攻撃」: 長押しでより遠く投げます +04:44=ただのチーズではなくて、もはや生物兵器です!|ダメージが小さい代わりに、その匂いを嗅いでしまった針鼠が毒にあたります|「1-5」: タイマーをセットする|「正確な狙い」+「1-5」: 弾力を調整する|「攻撃」: 長押しでより遠く投げます 04:45=物理の授業の成果を見せる場です!その弾道に全てを焼き尽くす正弦波を作ります|有力なノックバックも起こしますので気をつけてください。|「攻撃」: 正弦波を撃つ 04:46=燃える液体で敵を覆う|「攻撃」: 起動する|「上下」: 撃つ間に狙いを調整し続ける|「左右」: 出力を調整する 04:47=地面に取り付く地雷を投げる。|上手に使えば、連鎖反応を起こすこともできるかもしれません。|「攻撃」: 長押しでより遠く投げます(複数) @@ -413,7 +413,7 @@ 04:54=べとつく土の薄片を吹きかける。|橋をたてたり、トンネルを封鎖したりをするには役に立ちます。|「攻撃」: 起動する|「上下」: 撃つ間に狙いを調整し続ける 04:55=氷河時代を再現しよう!|針鼠や物体を凍らせるのも、地面を滑り台に変えるのもできます。|必要になれば、海まで凍らせることができます。|「攻撃」: 起動する|「上下」: 撃つ間に狙いを調整し続ける 04:56=包丁の使い道が多いです。|敵を襲ったり、トンネルを封鎖したりもその内にあります。|登山の補助にだってなります。|速度によってダメージが高まります。|「攻撃」: 長押しでより遠く投げます(複数) -04:57=かなり弾性のあるゴムバンドを設置する。|針鼠や物体はダメージを受けずに跳ねります|「カーソル」: 適切な位置でゴムバンドを置く |「左右」: 向く方向を変える +04:57=かなり弾力の高いゴムバンドを設置する。|針鼠や物体はダメージを受けずに弾みます|「カーソル」: 適切な位置でゴムバンドを置く |「左右」: 向く方向を変える 04:58=自由に空に浮かぶ近接型爆弾です。|迂闊に近寄る針鼠を追いかけて、爆発します。|ダメージは普通の地雷より小さい。|「攻撃」: 長押しでより遠く投げます 04:59=未完成 04:60=弾の雨で敵を襲いましょう!|この機関銃に掛かれば、桁を三つ重ねても妨害になりません。|「攻撃」: 撃つ(複数)|「上下」: 撃つ間に狙いを調整し続ける diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/lt.lua --- a/share/hedgewars/Data/Locale/lt.lua Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/lt.lua Thu Nov 01 02:55:22 2018 +0300 @@ -1426,7 +1426,7 @@ -- ["Most of the destructible terrain in marked with blue color"] = "", -- A_Space_Adventure:desert01 -- ["Most of the destructible terrain is marked with dashed lines."] = "", -- A_Space_Adventure:desert01 -- ["Most of the time you'll be able to use the freezer only."] = "", -- A_Space_Adventure:ice01 - ["Movement: [Up], [Down], [Left], [Right]"] = "Judëjimas: [I Virðu, [I Apaèia], [I Kaire], [I Deðine]"], + ["Movement: [Up], [Down], [Left], [Right]"] = "Judëjimas: [I Virðu, [I Apaèia], [I Kaire], [I Deðine]", -- ["Mr Mango"] = "", -- A_Space_Adventure:fruit01 -- ["Mudkip"] = "", -- -- ["Multi-shot! +15 points!"] = "", -- Space_Invasion @@ -1701,7 +1701,7 @@ -- ["Press [Left] or [Right] to move around, [Enter] to jump"] = "", -- A_Classic_Fairytale:first_blood -- ["Press [Long jump] to accept this configuration and begin placing hedgehogs."] = "", -- WxW -- ["Press [Long jump] to accept this configuration and start the game."] = "", -- WxW - ["Press [Precise] to skip intro"] = "Spausk [TaikluNusitaikima kad baigtum iëjima"], + ["Press [Precise] to skip intro"] = "Spausk [TaikluNusitaikima kad baigtum iëjima", -- ["Press [Up] and [Down] to move between menu items.|Press [Attack], [Left], or [Right] to toggle."] = "", -- WxW -- ["Prestigious Pilot"] = "", -- User_Mission_-_RCPlane_Challenge -- ["Princess"] = "", -- A_Classic_Fairytale:family, A_Classic_Fairytale:journey diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/missions_ja.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Locale/missions_ja.txt Thu Nov 01 02:55:22 2018 +0300 @@ -0,0 +1,98 @@ +Basic_Training_-_Movement.name=基本移動練習 +Basic_Training_-_Movement.desc="新人はここから始めてください! いろんな地形の乗り越え方と針鼠の切り替え方を身に着けます。" + +Basic_Training_-_Bazooka.name=基本バズーカ練習 +Basic_Training_-_Bazooka.desc="バズーカの使い方と風の影響のことを習って、目標を全て消滅してください。" + +Basic_Training_-_Grenade.name=基本手榴弾練習 +Basic_Training_-_Grenade.desc="手榴弾の投げ方を習って、目標を全て消滅してください。" + +Basic_Training_-_Rope.name=基本ロープ練習 +Basic_Training_-_Rope.desc="ロープはいろいろに使えることができる道具ですが、使いこなすには多くの練習が必要になります。 ここでロープの基本を習います" + +Basic_Training_-_Flying_Saucer.name=基本空飛ぶ円盤練習 +Basic_Training_-_Flying_Saucer.desc="空飛ぶ円盤の操作を習得すれば、どこにでも辿り着くことができます。ここで操作と攻撃の方法を習います。" + +User_Mission_-_Dangerous_Ducklings.name=危なそうなアヒル +User_Mission_-_Dangerous_Ducklings.desc="「よし、新人どもよ!ここまで身に付けたことを実戦で敵にぶつけてみよう!」" + +User_Mission_-_Diver.name=ダイバー +User_Mission_-_Diver.desc="「この強襲上陸とやらは、あまり簡単に行きそうにないな。。。」" + +User_Mission_-_Teamwork.name=チームワーク +User_Mission_-_Teamwork.desc="故障したロボットが軍事秘密を見張っています。この機密を手に入れるためには、針鼠二匹の特殊部隊をこの場に向かわせています。将来の作戦のためには、二匹も生き抜くことが必要不可欠です。" + +User_Mission_-_Teamwork_2.name=チームワークその二 +User_Mission_-_Teamwork_2.desc="サイバー帝国のアジトを発見することができました。見張りはたった一台のロボットのようです。アジトを制圧するためには、特殊部隊を指揮してロボットを消滅してください。前回のように、針鼠二匹も生き残らなければいけません。" + +User_Mission_-_Spooky_Tree.name=怪しげな樹木 +User_Mission_-_Spooky_Tree.desc="入手できる箱が沢山あります。その鳥はお腹が空いていなければいいんですが。。。" + +User_Mission_-_Bamboo_Thicket.name=竹林 +User_Mission_-_Bamboo_Thicket.desc="ロボットは竹林を脅し、動くものをほぼ完璧に正確打ち落とします。作戦を立てて、素早く敵を倒してください!" + +User_Mission_-_That_Sinking_Feeling.name=洪水 +User_Mission_-_That_Sinking_Feeling.desc="水量が素早く増えますし、時間も限られています。 みんなを助けることができますか?" + +User_Mission_-_Newton_and_the_Hammock.name=ニュートンとハンモック +User_Mission_-_Newton_and_the_Hammock.desc="「覚えなさい、小さな針鼠たちよ!物体の速度は外力を与えない限り変わりません!」" + +User_Mission_-_The_Great_Escape.name=大脱走 +User_Mission_-_The_Great_Escape.desc="脱走して復習を敵を倒そう!" + +User_Mission_-_Rope_Knock_Challenge.name=ロープ落とし +User_Mission_-_Rope_Knock_Challenge.desc="ロープをつかって、てきを全てうちおとしましょう!" + +User_Mission_-_Nobody_Laugh.name=笑い事 +User_Mission_-_Nobody_Laugh.desc="この道化師は、自分のことを面白いとか思っているそうですが、そうは行きません!数が多いが、こっちは時間が有利です。敵を全て倒してください。" + +User_Mission_-_RCPlane_Challenge.name=ラジコン飛行機挑戦 +User_Mission_-_RCPlane_Challenge.desc="ラジコン飛行機を使って箱を集めてください。飛行機を少なく使うと、より高い評価になります。" + +Big_Armory.name=兵器庫 +Big_Armory.desc="大量の武器をつかって、敵の針鼠八匹を一人で倒してください。" + +Bazooka_Battlefield.name=バズーカ戦場 +Bazooka_Battlefield.desc="忠実の騎士たちは敵に襲い掛かっています。バズーカのみを使用して、敵を倒してください!" + +Tentacle_Terror.name=触手恐怖 +Tentacle_Terror.desc="卑怯の敵は恐ろしい怪物に身を守られています。機会があれば、空襲で攻撃してきます。敵を倒すには、化物のようなロープ技術が必要になるかもしれません。" + +ClimbHome.name=登りかえり +ClimbHome.desc="家がまだ遠いし、水量が増えています。できるだけ高く登ってください。" + +portal.name=ポータル挑戦 +portal.desc="ポータルを使って、敵を倒してください。" + +Target_Practice_-_Bazooka_easy.name=バズーカ射的練習(簡単) +Target_Practice_-_Bazooka_easy.desc="標的をできるだけ早く撃ち落としてください!" + +Target_Practice_-_Bazooka_hard.name=バズーカ射的練習(困難) +Target_Practice_-_Bazooka_hard.desc="標的が遠くにあっても撃ち落とせますか?" + +Target_Practice_-_Cluster_Bomb.name=クラスター弾射的練習 +Target_Practice_-_Cluster_Bomb.desc="標的を爆弾に浴びさせよう!" + +Target_Practice_-_Shotgun.name=散弾銃射的練習 +Target_Practice_-_Shotgun.desc="問う前には、撃つのです!" + +Basic_Training_-_Sniper_Rifle.name=狙撃銃射的練習 +Basic_Training_-_Sniper_Rifle.desc="狙撃者にとっては、最高の射撃場です!" + +Target_Practice_-_Homing_Bee.name=誘導バチ射的練習 +Target_Practice_-_Homing_Bee.desc="バチを使いこなすのは大変です!" + +Target_Practice_-_Grenade_easy.name=手榴弾射的練習(簡単) +Target_Practice_-_Grenade_easy.desc="手榴弾戦士のための準備運動です。" + +Target_Practice_-_Grenade_hard.name=手榴弾射的練習(困難) +Target_Practice_-_Grenade_hard.desc="標的を非常に当たりずらい位置に置きます。" + +Challenge_-_Speed_Shoppa_-_Hedgelove.name=ロープ競技(小) +Challenge_-_Speed_Shoppa_-_Hedgelove.desc="小型マップで箱を集めてください。" + +Challenge_-_Speed_Shoppa_-_Ropes.name=ロープ競技(中) +Challenge_-_Speed_Shoppa_-_Ropes.desc="中型マップで箱を集めてください。" + +Challenge_-_Speed_Shoppa_-_ShoppaKing.name=ロープ競技(大) +Challenge_-_Speed_Shoppa_-_ShoppaKing.desc="大型マップで箱を集めてください。" diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/pl.lua --- a/share/hedgewars/Data/Locale/pl.lua Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/pl.lua Thu Nov 01 02:55:22 2018 +0300 @@ -4,7 +4,7 @@ ["011101000"] = "011101000", -- A_Classic_Fairytale:dragon ["011101001"] = "011101001", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:family, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow, A_Classic_Fairytale:united ["10 weapon schemes"] = "10 schematów broni", -- Continental_supplies --- ["15+%d damage, %d invulnerable left"] = "", -- Continental_supplies + ["15+%d damage, %d invulnerable left"] = "15+%d obrażeń, pozostało %d niezniszczalnych", -- Continental_supplies ["1-5, Precise + 1-4: Choose structure type"] = "1-5, Precyzja + 1-4: Wybierz typ struktury", -- Construction_Mode ["+1 barrel!"] = "+1 beczka!", -- Tumbler ["%.1fs"] = "%.1fs", -- Racer, TechRacer @@ -18,7 +18,7 @@ ["+1 to the Mutant for killing anyone"] = "+1 dla Mutanta za zabicie kogokolwiek", -- Mutant ["+2 for becoming the Mutant"] = "+2 za zostanie Mutantem", -- Mutant ["30 minutes later..."] = "30 minut później...", -- A_Classic_Fairytale:shadow --- ["%.3fs"] = "", -- A_Space_Adventure:ice02 + ["%.3fs"] = "%.3fs", -- A_Space_Adventure:ice02 ["5 additional enemies will be spawned during the game."] = "5 dodatkowych wrogów pojawi się podczas gry.", -- A_Space_Adventure:fruit01 ["5 Deadly Hogs"] = "5 Zabójczych Jeży", -- A_Space_Adventure:death02 ["6 more seconds added to the clock"] = "6 sekund dodano do zegara", -- A_Space_Adventure:ice02 @@ -99,12 +99,12 @@ ["And where's all the weed?"] = "I gdzie jest całe zioło?", -- A_Classic_Fairytale:dragon ["And you believed me? Oh, god, that's cute!"] = "A ty mi wierzyłeś? O boże, to słodkie!", -- A_Classic_Fairytale:journey ["And you need to move to the top!"] = "I musisz dostać się na szczyt!", -- Basic_Training_-_Movement --- ["An experimental editing tool for missions and more"] = "", -- HedgeEditor --- ["Anno 1032"] = "", -- Continental_supplies + ["An experimental editing tool for missions and more"] = "Eksperymentalne narzędzie do edycji i więcej.", -- HedgeEditor + ["Anno 1032"] = "Rok 1032", -- Continental_supplies ["Anno 1032: [The explosion will make a strong push ~ Wide range, wont affect hogs close to the target]"] = "Anno 1032: [Eksplozja będzie miała silny odrzut ~ Szeroki zasięg, nie wpłynie na jeże blisko celu]", -- Continental_supplies ["An object has been destroyed before it took enough damage."] = "Obiekt został zniszczony zanim otrzymał wystarczająco dużo obrażeń.", -- SimpleMission ["Antarctica"] = "Antarktyda", -- Continental_supplies --- ["Antarctic summer: Every 4th turn you get 1 girder, 1 mudball, 2 sine guns and 1 portable portal device."] = "", -- Continental_supplies + ["Antarctic summer: Every 4th turn you get 1 girder, 1 mudball, 2 sine guns and 1 portable portal device."] = "Antarktyczne lato: Co 4 tury dostajesz 1 belkę, 1 kulę błotną, 2 sinusoidalne giwery i 1 przenośne urządzenie portalowe.", -- Continental_supplies ["Antarctic summer: - Will give you one girder/mudball and two sineguns/portals every fourth turn."] = "Antarktyczne lato: Zapewni ci jedną belkę/kulę błotną i dwie sinusoidalne giwery/portale co każde cztery tury.", -- Continental_supplies ["Anti-Gravity Device Part (+1)"] = "Część Urządzenia Antygrawitacyjnego (+1)", -- A_Space_Adventure:desert01, A_Space_Adventure:fruit02, A_Space_Adventure:ice01 ["Anton"] = "Antoni", @@ -113,10 +113,10 @@ ["A random hedgehog will inherit the weapons of his deceased team-mates."] = "Losowy jeż odziedziczy bronie jego poległych członków zespołu.", -- A_Space_Adventure:death02 ["Arashi"] = "Araszi", ["Area"] = "Obszar", -- Continental_supplies --- ["Areas surrounded by a green dashed outline are portal-proof and repel portals."] = "", -- A_Space_Adventure:final --- ["Areas surrounded by a security border are indestructible."] = "", -- A_Space_Adventure:final --- ["Areas with a green dashed outline are portal-proof."] = "", -- A_Space_Adventure:final --- ["Areas with a security outline are indestructible."] = "", -- A_Space_Adventure:final + ["Areas surrounded by a green dashed outline are portal-proof and repel portals."] = "Obszary otoczone zielonym kreskowanym obrysem są portaloodporne i odrzucają portale.", -- A_Space_Adventure:final + ["Areas surrounded by a security border are indestructible."] = "Obszary otoczone granicą bezpieczeństwa są niezniszczalne.", -- A_Space_Adventure:final + ["Areas with a green dashed outline are portal-proof."] = "Obszary z zielonym kreskowanym obrysem są portaloodporne.", -- A_Space_Adventure:final + ["Areas with a security outline are indestructible."] = "Obszary z obrysem bezpieczeństwa są niezniszczalne.", -- A_Space_Adventure:final ["Are we there yet?"] = "Już dotarliśmy?", -- A_Classic_Fairytale:shadow ["Are you accusing me of something?"] = "Czy ty o coś mnie oskarżasz?", -- A_Classic_Fairytale:backstab ["Are you helping the aliens?"] = "Czy ty pomagasz obcym?", -- A_Classic_Fairytale:queen @@ -145,14 +145,14 @@ ["Attack From Rope: %s"] = "Atak z liny: %s", -- WxW ["Attack From Rope: You may only attack from a rope."] = "Atak z liny: Możesz atakować tylko z liny", -- WxW ["Attack rule: %s"] = "Zasada ataku: %s", -- WxW --- ["Attack: Select this continent"] = "", -- Continental_supplies + ["Attack: Select this continent"] = "Atak: Wybierz ten kontynent", -- Continental_supplies ["Attack: [Space]"] = "Atak: [Spacja]", -- Basic_Training_-_Bazooka, Basic_Training_-_Grenade, Basic_Training_-_Movement, Basic_Training_-_Rope ["Attack the assassins before they attack back"] = "Zaatakuj zabójców, zanim oni zaatakują", -- A_Space_Adventure:fruit02 ["Attack: Throw ball"] = "Atak: Rzuć kulę", -- Knockball ["At the end of the game your health was %d."] = "Na końcu gry, twoje zdrowie wynasiło %d.", -- A_Space_Adventure:ice01 ["At the start of the game each enemy hog has only the weapon that he is named after."] = "Na początku gry, każdy wrogi jeż ma tylko tę broń, po której jest nazwany.", -- A_Space_Adventure:death02 ["Australia"] = "Australia", -- Continental_supplies --- ["Available weapon specials:"] = "", -- Continental_supplies + ["Available weapon specials:"] = "Dostępne speciały broni:", -- Continental_supplies ["Average pilot"] = "Przeciętny pilot", -- User_Mission_-_RCPlane_Challenge ["Avoid bazookas, red and blue invaders."] = "Unikaj bazook, czerwonych i niebieskich najeźdźców.", -- Space_Invasion ["Avoid the mines!"] = "Unikaj min!", -- Basic_Training_-_Rope @@ -161,7 +161,7 @@ ["Back Breaker"] = "Łamacz Pleców", -- A_Classic_Fairytale:backstab ["Back in the village, after telling the villagers about the threat..."] = "Tymczasem w wiosce, po powiadomieniu mieszkańców o zagrożeniu...", -- A_Classic_Fairytale:united ["Back in the village, the two tribes finally started to live in harmony."] = "Tymczasem w wiosce, dwa plemienia w końcu zaczęły żyć w harmonii.", -- A_Classic_Fairytale:epil - ["Back Jump: [Backspace] ×2"] = "", -- Basic_Training_-_Movement +-- ["Back Jump: [Backspace] ×2"] = "", -- Basic_Training_-_Movement ["Back Jumping (1/2)"] = "Skok w tył (1/2)", -- Basic_Training_-_Movement ["Back Jumping (2/2)"] = "Skok w tył (2/2)", -- Basic_Training_-_Movement ["Backstab"] = "Zdrada", -- A_Classic_Fairytale:backstab @@ -178,7 +178,7 @@ ["BARREL PLACEMENT MODE"] = "TRYB STAWIANIA BECZEK", -- HedgeEditor ["Barrier unlocked!"] = "Beczka odblokowana!", -- Basic_Training_-_Rope ["Baseballbat"] = "Kij bejsbolwy", -- Continental_supplies --- ["Baseball bat specials cannot be used close to other hogs."] = "", -- Continental_supplies + ["Baseball bat specials cannot be used close to other hogs."] = "Speciały kija bejsbolowego nie mogą być użyte w pobliżu innych jeży.", -- Continental_supplies ["Baseball Bat with Ball"] = "Kij bejsbolowy z piłką", -- Knockball ["Base damage has been modified to 12 per shot."] = "Podstawowe obrażenia zostały zmodyfikowane do 12 na strzał.", -- Battalion ["Based on what you've learned, destroy the target on the girder and as always, land safely!"] = "Bazując na tym, co się nauczyłeś, zniszcz cel na belce i jak zawsze, wyląduj bezpiecznie!", -- Basic_Training_-_Flying_Saucer @@ -195,7 +195,7 @@ ["Batty"] = "Kijek", ["Bat your opponents through the|baskets and out of the map!"] = "Uderzaj swoich przeciwników|wyrzucając przez kosz, poza mapę!", ["Bazooka Battlefield"] = "Bazookowe pole bitwy", -- Bazooka_Battlefield --- ["Bazooka Master"] = "", -- Basic_Training_-_Bazooka + ["Bazooka Master"] = "Mistrz bazooki", -- Basic_Training_-_Bazooka ["Bazookas are influenced by wind."] = "Wiatr ma wpływ na bazookę.", -- Basic_Training_-_Bazooka ["Bazooka Team"] = "Drużyna Bazooki", -- Basic_Training_-_Bazooka ["Bazooka Training"] = "Trening bazooki", @@ -212,7 +212,7 @@ ["Best team times: "] = "Najlepsze czasy drużyny: ", -- Racer, TechRacer ["Better get yourself another health crate to heal your wounds."] = "Lepiej zdobądź kolejną skrzynię ze zdrowiem, żeby uleczyć swoje rany.", -- Basic_Training_-_Movement ["Better luck next time!"] = "Więcej szczęścia następnym razem!", -- ClimbHome --- ["Better Safe Than Sorry"] = "", -- A_Space_Adventure:desert02 + ["Better Safe Than Sorry"] = "Lepiej dmuchać na zimne", -- A_Space_Adventure:desert02 ["Beware, any damage taken will stay until you complete the moon's main mission"] = "Uważaj, jakiekolwiek otrzymane obrażenia zostaną, aż ukończysz księżycową misję", -- A_Space_Adventure:cosmos ["Beware of mines: They explode after 3 seconds."] = "Uważaj na miny: Wybuchają po 3 sekundach.", -- A_Classic_Fairytale:journey ["Beware of mines: They explode after 5 seconds."] = "Uważaj na miny: Wybuchają po 5 sekundach.", -- A_Classic_Fairytale:journey @@ -251,11 +251,11 @@ ["Bottom Feeder"] = "Pasożyt", -- Mutant ["Bounciness"] = "Odbijalność", -- Basic_Training_-_Grenade ["Bouncing Bomb"] = "Odbijająca się bomba", -- Basic_Training_-_Bazooka --- ["Bouncy Boomerang"] = "", -- Continental_supplies + ["Bouncy Boomerang"] = "Odbijający się bumerang", -- Continental_supplies ["Bouncy Girder: [4]"] = "Odbijająca Belka: [4]", -- HedgeEditor ["Bouncy Land: [4]"] = "Odbijający Teren: [4]", -- HedgeEditor ["Bouncy Land"] = "Odbijający Teren", -- HedgeEditor --- ["Bounty: Get 6 weapons for each kill (even on own hogs)."] = "", -- Continental_supplies + ["Bounty: Get 6 weapons for each kill (even on own hogs)."] = "Premia: Dostań 6 broni za każde zabójstwo (nawet na własnych jeżach).", -- Continental_supplies ["Bozo"] = "Bozo", ["Brain Blower"] = "Mózgorozwalacz", -- A_Classic_Fairytale:journey ["Brainiac"] = "Możdżak", -- A_Classic_Fairytale:epil, A_Classic_Fairytale:first_blood, A_Classic_Fairytale:shadow @@ -291,7 +291,7 @@ ["But you said you'd let her go!"] = "Ale powiedziałeś, że ją wypuścisz!", -- A_Classic_Fairytale:journey ["But you saved me!"] = "Ale uratowałeś mnie!", -- A_Classic_Fairytale:queen ["By the way, not only bazookas will bounce on water, but also greandes and many other things."] = "Przy okazji, nie tylko bazooka odbija się od wody, ale rownież granaty i inne rzeczy.", -- Basic_Training_-_Bazooka --- ["By the way, not only bazookas will bounce on water, but also grenades and many other things."] = "", -- Basic_Training_-_Bazooka + ["By the way, not only bazookas will bounce on water, but also grenades and many other things."] = "Przy okazji, nie tylko bazooki odbijają się od wody, ale również granaty i wiele innych rzeczy.", -- Basic_Training_-_Bazooka ["By the way, you can turn around without walking|by holding down Precise when you hit a walk control."] = "Przy okazji, możesz obracać się bez chodzenia|trzymając Precyzję, kiedy wciskasz przycisk chodzenia.", -- Basic_Training_-_Movement ["C-1"] = "C-1", -- portal ["C-2"] = "C-2", -- portal @@ -335,7 +335,7 @@ ["Chief Sandologist"] = "Naczelny Piaskolog", -- A_Space_Adventure:desert01 ["Chikorita"] = "Chikorita", ["Choose Selection/Placement/Deletion: [Left], [Right]"] = "Wybierz Zaznaczanie/Ustawianie/Usuwanie: [Lewo], [Prawo]", -- HedgeEditor --- ["Choose your continent wisely, as your decision will be permanent."] = "", -- Continental_supplies + ["Choose your continent wisely, as your decision will be permanent."] = "Wybierz swój kontynent mądrze, bo twoja decyzja będzie trwała.", -- Continental_supplies ["Choose your side! If you want to join the strange man, walk up to him.|Otherwise, walk away from him. If you decide to att...nevermind..."] = "Wybierz swoją stronę! Jeśli chcesz dołączyć do dziwnego mężczyzny, podejdź do niego.|W innym przypadku, odejdź od niego. Jeśli zdecydujesz się zaata... nieważne...", -- A_Classic_Fairytale:shadow ["Chunli"] = "Czunli", ["Clark Kent"] = "Clark Kent", @@ -399,8 +399,8 @@ ["Construction Station: Allows placement of| girders, rubber, mines, sticky mines| and barrels."] = "Stacja Konstrukcji: Pozwala na stawianie| belek, gumy, min, min samoprzylepnych| i beczek.", -- Construction_Mode ["Construction Station"] = "Stacja Konstrukcji", -- Construction_Mode ["Continental supplies"] = "Kontynentalne zaopatrzenie", -- Continental_supplies --- ["Continent selection"] = "", -- Continental_supplies --- ["Continents: Select a continent at the beginning."] = "", -- Continental_supplies + ["Continent selection"] = "Wybór kontynentu", -- Continental_supplies + ["Continents: Select a continent at the beginning."] = "Kontynenty: Wybierz kontynent na początku", -- Continental_supplies ["Control"] = "Kontrola", -- Control ["Control pillars to score points."] = "Kontroluj kolumny, by zdobyć punkty.", ["Controls: Hold the Attack key (space by default) to|fire the rope, then, once attached use:|Left and Right to swing the rope;|Up and Down to contract and expand."] = "Sterowanie: Przytrzymaj przycisk Ataku (domyślnie Spacja), by|wystrzelić linę, potem po zaczepieniu, użyj:|Lewo i Prawo, by rozhuśtać linę;|Góra i Dół, by skurczyć i rozszerzyć.", -- Basic_Training_-_Rope @@ -427,7 +427,7 @@ ["crate(s)"] = "skrzyń", -- SpeedShoppa ["Crazy Gravity: Gravity randomly changes within a range from %i%% to %i%% with a period of %s"] = "Szalona grawitacja: Grawitacja losowo zmienia się w zakresie od %i%% do %i%%, z okresem %s", -- Gravity ["Crazy Runner"] = "Szalony Biegacz", -- A_Space_Adventure:moon02 --- ["Cricket Time"] = "", -- Continental_supplies + ["Cricket Time"] = "Czas na krykieta", -- Continental_supplies ["Cricket time: [Fire away a 1 sec mine! ~ Cannot be fired close to another hog]"] = "Czas krykieta: [Wystrzel 1-sekundową minę! ~ Nie może być wystrzelone blisko innego jeża]", -- Continental_supplies ["CTF_Blizzard"] = "CTF Burza Śnieżna", -- CTF_Blizzard ["Cursor: Build structure"] = "Kursor: Zbuduj strukturę", -- Construction_Mode @@ -438,7 +438,7 @@ ["Cybernetic Empire"] = "Cybernetyczne Imperium", ["Cyborg. It's what the aliens call themselves."] = "Cyborgi. Tak nazywają siebie ci kosmici.", -- A_Classic_Fairytale:enemy ["Dahmer"] = "Damer", -- A_Classic_Fairytale:backstab - ["Daisy"] = "Stokrotka", + ["Daisy"] = "Daisy", ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "Młody!!! Złaź z mojej głowy!!!", ["DAMMIT, ROOKIE!"] = "Żółtodziobie!", ["+%d ammo"] = "+%d amunicji", -- Battalion @@ -453,8 +453,8 @@ ["%d/%d"] = "%d/%d", -- SpeedShoppa ["Deadly Grape"] = "Zabójczy Winogron", -- A_Space_Adventure:fruit02 ["Deadweight"] = "Balast", --- ["Deal 15 damage + 10% of your hog’s health to all hogs around you and get 2/3 back."] = "", -- Continental_supplies --- ["Deals 15 damage to all enemies in the circle."] = "", -- Continental_supplies + ["Deal 15 damage + 10% of your hog’s health to all hogs around you and get 2/3 back."] = "Zadaj 15 obrażeń + 10% zdrowia twojego jeża wszystkim jeżom dookoła ciebie i dostań 2/3 z powrotem.", -- Continental_supplies + ["Deals 15 damage to all enemies in the circle."] = "Zadaje 15 obrażeń wszystkim wrogom w kole.", -- Continental_supplies ["Deer"] = "Jeleń", ["Defeat all enemies!"] = "Pokonaj wszystkich wrogów!", -- portal ["Defeat Professor Hogevil!"] = "Pokonaj Profesora Jeżozło!", -- A_Space_Adventure:death01 @@ -473,7 +473,7 @@ ["Dense Cloud"] = "Gęsta Chmura", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow, A_Classic_Fairytale:united ["Dense Cloud must have already told them everything..."] = "Gęsta Chmura pewnie im już wszystko powiedział...", -- A_Classic_Fairytale:shadow ["Dense Cloud?! What are you doing?!"] = "Gęsta Chmura?! Co ty robisz?!", -- A_Classic_Fairytale:queen - ["Depleted Kamikaze! +5 points!"] = "Wyczerpany Kamikaze! +% punktów", -- Space_Invasion + ["Depleted Kamikaze! +5 points!"] = "Wyczerpany Kamikaze! +5 punktów", -- Space_Invasion ["Derp"] = "Derp", -- User_Mission_-_Nobody_Laugh ["Desert Storm"] = "Pustynna Burza", ["Destroy all targets with no more than 10 bazookas."] = "Zniszcz wszystkie cele używając nie więcej niż 10 bazook.", -- Basic_Training_-_Bazooka @@ -504,7 +504,7 @@ ["Dimitry"] = "Dymitr", ["%d invaders have been destroyed in this game."] = "%d najeźdźców zostało zniszczonych w tej grze.", -- Space_Invasion ["Disabled"] = "Wyłączone", -- WxW --- ["Disguise as a Rockhopper Penguin"] = "", -- Continental_supplies + ["Disguise as a Rockhopper Penguin"] = "Przebież się za Pingwina Rakietoskoczka", -- Continental_supplies ["Disguise as a Rockhopper Penguin: [Swap place with a random enemy hog in the circle]"] = "Przebranie za pingwina skalnegi: [Zamień miejsce z losowym wrogim jeżem w kole]", -- Continental_supplies ["Displacer"] = "Wypieracz", ["Disqualified!"] = "Zdyskwalifikowany!", -- User_Mission_-_That_Sinking_Feeling @@ -546,7 +546,7 @@ ["Dr. Jenner"] = "Dr Dżener", ["Dr. Jung"] = "Dr Dżang", ["Drone Hunter! +10 points!"] = "Łowca dronów! +10 punktów!", -- Space_Invasion --- ["Drop a ball of dirt which turns into a|cluster on impact. Doesn’t end turn."] = "", -- Continental_supplies + ["Drop a ball of dirt which turns into a|cluster on impact. Doesn’t end turn."] = "Upuść kulę ziemi, która przy uderzeniu|zamieni się w odłamek. Nie kończy tury.", -- Continental_supplies ["Drop a bomb: [Drop some heroic wind that will turn into a bomb on impact]"] = "Upuść bombę: [Upuść trochę heroicznego wiatru, który przy uderzeniu zamieni się w bombę]", -- Continental_supplies ["- Dropped flags may be returned or recaptured"] = "- Upuszczone flagi mogą być zwrócone lub ponownie przejęte", -- Capture_the_Flag ["Dropping a weapon while in water would just drown it, but launching one would work."] = "Upuszczenie broni pod wodą by ją utopiłą, ale wystrzelenie zadziała.", -- Basic_Training_-_Flying_Saucer @@ -575,7 +575,7 @@ ["Duration"] = "Czas trwania", -- Continental_supplies ["During the final testing of the device an accident happened."] = "Podczas finałowych testów urządzenia zdarzył się wypadek.", -- A_Space_Adventure:moon02 ["During the game you can get new RC planes by collecting the weapon crates."] = "Podczas gry możesz zdobyć nowe samolociki, zbierając skrzynie z broniami.", -- A_Space_Adventure:desert03 --- ["Dust Storm"] = "", -- Continental_supplies + ["Dust Storm"] = "Burza pyłowa", -- Continental_supplies ["Dust storm: [Deals 15 damage to all enemies in the circle]"] = "Burza pyłowa: [Zadaje 15 obrażeń każdemu wrogowi w kole]", -- Continental_supplies ["Each time you destroy all the targets on your current level you'll get teleported to the next level."] = "Za każdym razem, gdy zniszczysz wszystkie cele na twoim aktualnym poziomie, zostaniesz przeteloportowany do następnego poziomu.", -- A_Space_Adventure:desert03 ["Each time you play this missions enemy hogs will play in a random order."] = "Za każdym razem, gdy grasz w tę misję, wrogie jeże będą grały w losowym porządku.", -- A_Space_Adventure:death02 @@ -654,10 +654,10 @@ ["Finish waypoint placement"] = "Zakończ stawianie punktów kontrolnych", -- Racer ["Finish your training|Hint: Animations can be skipped with the [Precise] key."] = "Ukończ swój trening|Porada: Animacje mogą być pominięte przyciskiem [Precyzja]", -- A_Classic_Fairytale:first_blood ["Finite Ropes"] = "Skończone liny", -- Basic_Training_-_Rope --- ["Fire a rocket with napalm."] = "", -- Continental_supplies + ["Fire a rocket with napalm."] = "Strzel rakietą z napalmem.", -- Continental_supplies ["Fire: [Precise]"] = "Strzel: [Precyzja]", -- Space_Invasion, Tumbler --- ["Fire some exploding medicine that will heal 15 health to all hogs in its effect radius."] = "", -- Continental_supplies --- ["Fire your hedgehog like a sticky mine."] = "", -- Continental_supplies + ["Fire some exploding medicine that will heal 15 health to all hogs in its effect radius."] = "Wystrzel eksplodujące lekarstwo, które wyleczy 15 zdrowia wszystkim jeżom w promieniu efektu.", -- Continental_supplies + ["Fire your hedgehog like a sticky mine."] = "Wystrzel swojego jeża jak minę samoprzylepną.", -- Continental_supplies ["First aid kits?!"] = "Apteczki?", -- A_Classic_Fairytale:united ["First Blood"] = "Pierwsza krew", -- A_Classic_Fairytale:first_blood ["- First clan to capture the flag wins"] = "- Pierwszy klan, który przejmie flagę, wygrywa", -- Capture_the_Flag @@ -672,7 +672,7 @@ ["Flag returned!"] = "Flaga odzyskana!", ["Flamer"] = "Miotacz ognia", ["Flaming Worm"] = "Płomienisty Robal", -- A_Classic_Fairytale:backstab --- ["Flare"] = "", -- Continental_supplies + ["Flare"] = "Flara", -- Continental_supplies ["Flawless victory!"] = "Bezbłędne zwycięstwo!", -- User_Mission_-_RCPlane_Challenge ["Flee: Press [Jump]"] = "Ucieknij: Wciśnij [Skok]", -- A_Space_Adventure:fruit01 ["Flesh for Brainz"] = "Mięso dla Mózgów", -- A_Classic_Fairytale:journey @@ -680,7 +680,7 @@ ["Flying Saucer Training"] = "Trening latającego talerza", -- Basic_Training_-_Flying_Saucer ["Fly into space to fight off the invaders with barrels!"] = "Leć w kosmos, by odeprzeć najeźdźców beczkami!", -- Space_Invasion ["Fly to the meteorite and detonate the explosives"] = "Poleć do meteorytu i zdetonuj ładunki", -- A_Space_Adventure:cosmos --- ["Forgetfulness: You will lose all your weapons each turn."] = "", -- Continental_supplies + ["Forgetfulness: You will lose all your weapons each turn."] = "Zapominalstwo: W każdej turze stracisz wszystkie swoje bronie.", -- Continental_supplies ["For the next crate, you have to do back jumps."] = "Do następnej skrzyni musisz zrobić skoki w tył.", -- Basic_Training_-_Movement ["Four Eyes"] = "Czterooki", ["Frank"] = "Franek", -- User_Mission_-_Nobody_Laugh @@ -713,7 +713,7 @@ ["Gear information hidden"] = "Informacje o rzeczach ukryte", -- HedgeEditor ["Gear information shown"] = "Informacje o rzeczach pokazane", -- HedgeEditor ["Gear Placement Tool"] = "Narzędzie Ustawiania Rzeczy", -- HedgeEditor --- ["General information:"] = "", -- Continental_supplies + ["General information:"] = "Ogólne informacje:", -- Continental_supplies ["General information"] = "Ogólne informacje", -- Continental_supplies ["General Lemon"] = "Generał Cytryna", -- A_Space_Adventure:fruit01 ["Generator: Generates energy."] = "Generator: Generuje energię.", -- Construction_Mode @@ -793,11 +793,11 @@ ["Great! You will be contacted soon for assistance."] = "Świetnie! Niedługo skontaktujemy się z tobą po pomoc.", -- A_Classic_Fairytale:shadow ["Green Bananas won!"] = "Zielone Banany wygrywają!", -- A_Space_Adventure:fruit01 ["Green Bananas"] = "Zielone Banany", -- A_Space_Adventure:fruit01 --- ["Green double rings also give you a new flying saucer."] = "", -- A_Space_Adventure:ice02 + ["Green double rings also give you a new flying saucer."] = "Zielone podwójne pierścienie również dają nowy latający talerz.", -- A_Space_Adventure:ice02 ["Green Hog Grape"] = "Zielonojeżowy Winogron", -- A_Space_Adventure:fruit01 ["Green hogs won't intentionally hurt you."] = "Zielone jeże nie zaatakują cię umyślnie.", -- A_Space_Adventure:fruit01 ["Greenhorn"] = "Żółtodziób", -- User_Mission_-_RCPlane_Challenge --- ["Green Lipstick Bullet"] = "", -- Continental_supplies + ["Green Lipstick Bullet"] = "Pocisk zielonej szminki", -- Continental_supplies ["Green lipstick bullet: [Poisonous, deals no damage]"] = "Zielony szminkowy pocisk: [Zatruty, nie zadaje obrażeń]", -- Continental_supplies ["Green"] = "Zielony", ["Greetings, cloudy one!"] = "Witaj, chmurzysty", -- A_Classic_Fairytale:shadow @@ -857,7 +857,7 @@ ["HEDGEEDITOR"] = "JEŻEDYTOR", -- HedgeEditor ["HedgeEditor tool"] = "Narzędzie JeżEdytora", -- HedgeEditor ["Hedgehog"] = "Jeż", --- ["Hedgehog Projectile"] = "", -- Continental_supplies + ["Hedgehog Projectile"] = "Pocisk jeżowy", -- Continental_supplies ["Hedgehog projectile: [Fire your hog like a Sticky Bomb]"] = "Jeżowy pocisk: [Wystrzel swojego jeża jak minę samoprzylepną]", -- Continental_supplies ["Hedgehogs can not be deleted."] = "Jeże nie mogą być usunięte", -- HedgeEditor ["Hedgehogs will be revived after their death."] = "Jeże zostaną ożywione po śmierci.", -- Mutant @@ -889,7 +889,7 @@ ["Here we go!"] = "No to ruszamy!", -- A_Space_Adventure:moon01 ["Here you will find the current mission instructions."] = "Tutaj znajdziesz instrukcje do aktualnej misji", -- Basic_Training_-_Movement ["Here you will learn how to fly the flying saucer|and get so learn some cool tricks."] = "Tutaj poznasz jak lata się latającym talerzem|i będziesz mieć szansę poznać odlotowe sztuczki.", -- Basic_Training_-_Flying_Saucer --- ["Heroic Wind"] = "", -- Continental_supplies + ["Heroic Wind"] = "Heroiczny wiatr", -- Continental_supplies ["Hero Team"] = "Drużyna Bohatera", -- User_Mission_-_The_Great_Escape ["He's so brave..."] = "Jest taki odważny...", -- A_Classic_Fairytale:first_blood ["He was the lab assistant of Dr. Goodhogan, the inventor of the anti-gravity device."] = "Był asystentem laboratoryjnym Dr Dobrojeża, wynalazcy urządzenia antygrawitacyjnego.", -- A_Space_Adventure:moon02 @@ -915,7 +915,7 @@ ["Hi! Nice to meet you."] = "Cześć! Miło cię poznać.", -- A_Space_Adventure:ice01 ["Hint: Double Jump - Press [Backspace] twice"] = "Wskazówka: Podwójny skok - Wciśnij [Backspace] dwa razy", -- A_Classic_Fairytale:first_blood ["Hint: Drilling holes should solve everything."] = "Wywiercenie dziur powinno wszystko rozwiązać.", -- A_Classic_Fairytale:family --- ["Hint: Hold down [M] to review the mission texts."] = "", -- A_Classic_Fairytale:first_blood + ["Hint: Hold down [M] to review the mission texts."] = "Wskazówka: Przytrzymaj [M], by zobaczyć teksty misji.", -- A_Classic_Fairytale:first_blood ["Hint: If this mission panel disappears, you can|see it again by hitting the Pause or Quit key."] = "Wskazówka: Jeśli panel misji zniknie, możesz zobaczyć go ponownie, wciskając Pauzę lub Wyjście.", -- Basic_Training_-_Movement ["Hint: It might be a good idea to place a girder before starting to drill. Just saying."] = "Wskazówka: To może być dobry pomysł, by ustawić belki przed rozpoczęciem wiercenia. Tylko mówię.", -- A_Classic_Fairytale:family ["Hint: It might be easier if you vary the angle only slightly."] = "Wskazówka: Może być łatwiej, jeśli zmienisz kąt tylko trochę.", -- Basic_Training_-_Bazooka @@ -926,8 +926,8 @@ ["Hint: Select the low gravity and press [Fire]."] = "Porada: Wybierz niską grawitację i wciśnij [Strzał].", -- A_Classic_Fairytale:journey ["Hint: %s needs to get really close to the princess!"] = "Wskazówka: %s potrzebuje dostać się naprawdę blisko księżniczki!", -- A_Classic_Fairytale:family ["Hint: The rope only bends around objects.|When it doesn't hit anything, it's always straight."] = "Wskazówka: Lina owija się jedynie wokół obiektów.|Jeśli nic nie uderzy, zawsze jest prosta.", -- Basic_Training_-_Rope --- ["Hint: To jump higher, wait a bit before you hit “High Jump” a second time."] = "", -- Basic_Training_-_Movement --- ["Hint: Use the quit key to see the team’s continent."] = "", -- Continental_supplies + ["Hint: To jump higher, wait a bit before you hit “High Jump” a second time."] = "Wskazówka: By skoczyć wyżej, poczekaj trochę zanim ponownie wciśniesz \"Wysoki skok\".", -- Basic_Training_-_Movement + ["Hint: Use the quit key to see the team’s continent."] = "Porada: Uzyj klawisza wyjścia, by zobaczyć kontynent drużyny", -- Continental_supplies ["Hint: When you shorten the rope, you move faster!|And when you lengthen it, you move slower."] = "Wskazówka: Kiedy skrócisz linę poruszasz się szybciej!|A kiedy ją wydłużysz, poruszasz się wolniej.", -- Basic_Training_-_Rope ["--- Hint ---"] = "--- Wskazówka ---", -- Battalion ["Hint: you might want to stay out of sight and take all the crates...|"] = "Porada: Możesz chcieć pozostać poza widokiem i zabrać wszystkie skrzynie...|", -- A_Classic_Fairytale:journey @@ -1058,7 +1058,7 @@ ["If you help us you can keep the device if you find it but we'll keep everything else."] = "Jeśli nam pomożesz, możesz zatrzymać urządzenie jeśli je znajdziesz, ale zatrzymay wszytko inne.", -- A_Space_Adventure:fruit02 ["If you hurt an enemy, you'll get one third of the damage dealt."] = "Jeśli skrzywdzisz wroga, otrzymasz jedną trzecią zadanych obrażeń.", -- A_Space_Adventure:death02 ["If you injure a hedgehog you'll get 35% of the damage dealt."] = "Jeśli zranisz jeża, otrzymasz 35% zadanych obrażeń.", -- A_Space_Adventure:death02 --- ["If you just don’t care …"] = "", -- Continental_supplies + ["If you just don’t care …"] = "Jeśli ci nie zależy...", -- Continental_supplies ["If you kill a hedgehog with the respective weapon your health points will be set to 100."] = "Jeśli zabijesz jeża odpowiednią bronią, twoje zdrowie zostanie ustawione na 100.", -- A_Space_Adventure:death02 ["If you kill an enemy, your health will be set to 100."] = "Jeśli zabijesz wroga, twoje zdrowie zostanie ustawione na 100.", -- A_Space_Adventure:death02 ["If you know what I mean..."] = "Jeśli wiesz co mam na myśli...", -- A_Classic_Fairytale:shadow @@ -1112,7 +1112,7 @@ ["I'm here to help you rescue her."] = "Jestem tu pomóc ci ją uratować.", -- A_Classic_Fairytale:family ["I'm living a dream!"] = "Przeżywam sen!", -- A_Classic_Fairytale:queen ["I'm not sure about that!"] = "Nie jestem tego pewny!", -- A_Classic_Fairytale:united --- ["IMPORTANT: To see the mission panel again, hold the mission panel key."] = "", -- Basic_Training_-_Movement + ["IMPORTANT: To see the mission panel again, hold the mission panel key."] = "WAŻNE: By ponownie zobaczyć panel misji, przytrzymaj klawisz panelu misji.", -- Basic_Training_-_Movement ["IMPORTANT: To see the mission panel again, use the quit or pause key."] = "WAŻNE: By zobaczyć panel misji ponownie, użyj przycisku wyjścia lub pauzy.", -- Basic_Training_-_Movement ["Impressive...you are still dry as the corpse of a hawk after a week in the desert..."] = "Imponujące... nadal jesteś suchy, jak zwłoki jastrzębia po tygodniu na pustyni...", -- A_Classic_Fairytale:first_blood ["%i ms"] = "%i ms", -- Gravity @@ -1124,7 +1124,7 @@ ["I'm the spy! I've been giving you out!"] = "Jestem szpiegiem! Wydawałam was!", -- A_Classic_Fairytale:queen ["In am also entrusting you with some rope."] = "Powierzam ci również trochę liny.", -- A_Space_Adventure:cosmos ["In case you haven't noticed, I'm a woman, too!"] = "W razie, gdybyś nie zauważył, też jestem kobietą!", -- A_Classic_Fairytale:queen --- ["Increase the dust storm damage by sacrificing|your invulnerable ammo."] = "", -- Continental_supplies + ["Increase the dust storm damage by sacrificing|your invulnerable ammo."] = "Zwiększ obrażenia burzy pyłowej poświęcając|swoją niezniszczalną amunicję.", -- Continental_supplies ["Incredible..."] = "Niesamowite...", -- A_Classic_Fairytale:shadow ["Indestructible Girder: [2]"] = "Niezniszczalna Belka: [2]", -- HedgeEditor ["Indestructible Land: [2]"] = "Niezniszczalny Teren: [2]", -- HedgeEditor @@ -1136,7 +1136,7 @@ ["I need to prevent their arrival!"] = "Muszę zapobiec ich przybyciu!", -- A_Classic_Fairytale:backstab ["I need to warn the others."] = "Muszę ostrzec innych.", -- A_Classic_Fairytale:backstab ["In fact, you are the only one that's been acting strangely."] = "Tak naprawdę, jesteś jedynym, który dziwnie się zachowywał.", -- A_Classic_Fairytale:backstab --- ["Initial health: %d"] = "", -- Continental_supplies + ["Initial health: %d"] = "Początkowe zdrowie: %d", -- Continental_supplies ["Initiate escape wish!"] = "Inicjalizuj życzenie ucieczki!", -- A_Classic_Fairytale:queen ["In order to get to the other side, you need to get rid of the crates first."] = "Żeby dostać się na drugą stronę, musisz pozbyć się najpierw skrzyń.", -- A_Classic_Fairytale:dragon ["Insanity!"] = "Szaleństwo!", -- Mutant @@ -1287,7 +1287,7 @@ ["Lassard"] = "Draniówa", ["Last Resort: Having less than 25% base health gives kamikaze"] = "Ostatnia Deska Ratunku: Posiadanie mniej niż 25% bazowego zdrowia daje kamikaze", -- Battalion ["Last Target!"] = "Ostatni cel!", --- ["Launch a bouncy ball which explodes into a crate."] = "", -- Continental_supplies + ["Launch a bouncy ball which explodes into a crate."] = "Wystrzel odbijającą się piłkę, która eksloduje w skrzynię.", -- Continental_supplies ["Launch some bazookas to destroy the targets!"] = "Wystrzel trochę bazook i zniszcz cele!", -- Basic_Training_-_Bazooka ["Leaderbot"] = "Dowódcobot", -- A_Classic_Fairytale:queen ["Leader"] = "Dowódca", -- A_Classic_Fairytale:enemy @@ -1333,12 +1333,12 @@ ["Little did they know that this hunt will mark them forever..."] = "Nie zdają sobie sprawy, że to polowanie naznaczy ich na zawsze...", -- A_Classic_Fairytale:shadow ["Little Obstacle Course"] = "Mały tor przeszkód", -- Basic_Training_-_Rope ["Lively Lifeguard"] = "Żwawy Ratownik", --- ["Lonely Cries"] = "", -- Continental_supplies - ["Lonely Cries: [Rise the water if no hog is in the circle and deal 6 damage to all enemy hogs.]"] = "Samotne Łkanie: [Podnosi wodę, jeśli nie ma jeża w kole i zadaje 6 obrażeń każdemu wrogiemu jeżowi.]", -- Continental_supplies + ["Lonely Cries"] = "Samotne łkanie", -- Continental_supplies + ["Lonely Cries: [Rise the water if no hog is in the circle and deal 6 damage to all enemy hogs.]"] = "Samotne łkanie: [Podnosi wodę, jeśli nie ma jeża w kole i zadaje 6 obrażeń każdemu wrogiemu jeżowi.]", -- Continental_supplies ["Lonely Hog"] = "Samotny Jeż", -- ClimbHome ["Long Jump: [Enter]"] = "Długi skok: [Enter]", -- Basic_Training_-_Movement ["Long Live The Queen"] = "Niech żyje królowa", -- A_Classic_Fairytale:queen --- ["Look around: [Mouse movement]"] = "", -- Basic_Training_-_Movement + ["Look around: [Mouse movement]"] = "Rozejrzyj się: [Ruch myszą]", -- Basic_Training_-_Movement ["Look, boss! There is the target!"] = "Zobacz, szefie! Tam jest cel!", -- A_Space_Adventure:moon01 ["Look, I had no choice!"] = "Słuchaj, nie miałem wyboru!", -- A_Classic_Fairytale:backstab ["Look out! There's more of them!"] = "Uważaj! Jest ich więcej!", -- A_Classic_Fairytale:backstab @@ -1374,7 +1374,7 @@ ["Maybe you should try easier waypoints next time."] = "Może następnym razem powinieneś spróbować łatwiejszych punktów kontrolnych.", -- Racer ["May the spirits aid you in all your quests!"] = "Niech dusze pomogą wam w waszych zadaniach!", -- A_Classic_Fairytale:backstab ["Meals"] = "Mils", --- ["Medicine"] = "", -- Continental_supplies + ["Medicine"] = "Lekarstwo", -- Continental_supplies ["Medicine: [Fire some exploding medicine that will heal all hogs effected by the explosion]"] = "Lekarstwo: [Wystrzel trochę eksplodującego leku, który uleczy wszystkie jeże w jej zasięgu]", -- Continental_supplies ["Medic"] = "Medyk", -- Battalion ["MEDIUM"] = "ŚREDNI", -- Continental_supplies @@ -1403,7 +1403,7 @@ ["Mission failed!"] = "Misja zakończona niepowodzeniem!", -- Big_Armory ["Mission failure in %d s"] = "Porażka misji w %d s", -- Big_Armory ["Mission lost!"] = "Misja stracona!", -- Basic_Training_-_Grenade --- ["Mission panel: [M]"] = "", -- Basic_Training_-_Movement + ["Mission panel: [M]"] = "Panel misji: [M]", -- Basic_Training_-_Movement ["Mission Panel"] = "Panel misji", -- Basic_Training_-_Movement ["MISSION SUCCESSFUL"] = "MISJA POWIODŁA SIĘ", ["Mission won!"] = "Misja wygrana!", -- Basic_Training_-_Grenade @@ -1444,7 +1444,7 @@ ["Nameless Heroes"] = "Bezimienni Bohaterowie", ["Nancy Screw"] = "Nansi Gwóźdź", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:queen ["Napalm"] = "Napalm", -- Construction_Mode --- ["Napalm Rocket"] = "", -- Continental_supplies + ["Napalm Rocket"] = "Rakieta napalmowa", -- Continental_supplies ["Napalm rocket: [Fire a bomb with napalm!]"] = "Napalmowa rakieta: [Wystrzel bombę z napalmem!]", -- Continental_supplies ["Naranja Jed"] = "Narandża Dżed", -- A_Space_Adventure:fruit01 ["Natives"] = "Tubylcy", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:first_blood, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow, A_Classic_Fairytale:united @@ -1474,7 +1474,7 @@ ["Nobody Laugh"] = "Nikt się nie śmieje", -- User_Mission_-_Nobody_Laugh ["Nobody managed to finish the race. What a shame!"] = "Nikomu nie udało się ukończyć wyścigu. Co za wstyd!", -- Racer, TechRacer ["Nobody takes walks every day!"] = "Nikt nie chadza na spacery każdego dnia!", -- A_Classic_Fairytale:epil --- ["No continent selected"] = "", -- Continental_supplies + ["No continent selected"] = "Nie wybrano kontynentu", -- Continental_supplies ["No, I am afraid I had to travel light."] = "Nie, obawiam się, że musiałem podróżować bez bagażu.", -- A_Space_Adventure:moon01 ["No, I came back to help you out..."] = "Nie, wróciłem, by ci pomóc...", -- A_Classic_Fairytale:shadow ["No...I wonder where they disappeared?!"] = "Nie... ciekawe, gdzie oni zniknęli?!", -- A_Classic_Fairytale:journey @@ -1498,7 +1498,7 @@ ["Note: Some weapons have a second option (See continent information). Find and use them with the \""] = "Notka: Niektóre bronie mają drugą opcję (zobacz informację o kontynencie). Znajdź je i użyj przez \"", -- Continental_supplies ["Note: Some weapons have a second option (See continent information). Find and use them with the \"%s\" key."] = "Notka: Niektóre bronie mają drugą opcję (Patrz informacje kontynentowe). Znajdź je i użyj przyciskiem \"%s\".", -- Continental_supplies ["Note: This basic training assumes default controls."] = "Notka: Ten podstawowy trening zakłada domyślne sterowanie.", -- Basic_Training_-_Movement --- ["Note: Walking is disabled in this mission."] = "", -- Basic_Training_-_Grenade + ["Note: Walking is disabled in this mission."] = "Uwaga: Chodzenie jest w tej misji wyłączone.", -- Basic_Training_-_Grenade ["Note: We only give you grenades if you stay in your flying saucer."] = "Notka: Dajemy ci granaty tylko, gdy jesteśw swoim spodku.", -- Basic_Training_-_Flying_Saucer ["Nothing of interest has happened."] = "Nic interesującego się nie wydarzyło.", -- Space_Invasion ["Not now, Fiery Water!"] = "Nie teraz, Ognista Wodo!", -- A_Classic_Fairytale:backstab @@ -1519,7 +1519,7 @@ ["Now how do I get on the other side?!"] = "Teraz, jak mam dostać się na drugą stronę?", -- A_Classic_Fairytale:dragon ["Now I have to climb these trees"] = "Teraz muszę wspiąć się na te drzewa", -- A_Space_Adventure:cosmos ["No Wind Influcence"] = "Bez wpływu wiatru", -- Basic_Training_-_Grenade --- ["No Wind Influence"] = "", -- Basic_Training_-_Grenade + ["No Wind Influence"] = "Brak wpływu wiatru", -- Basic_Training_-_Grenade ["Now let's try to drop weapons while flying!"] = "Teraz spróbujmy zrzucić bronie latając!", -- Basic_Training_-_Flying_Saucer ["Now listen carefully! Below us there are tunnels that have been created naturally over the years"] = "Teraz słuchaj uważnie! Pod nami są tunele, które zostały naturalnie stworzone przez lata.", -- A_Space_Adventure:desert01 ["Now try to get out of this bounce house|and take the next crate."] = "Teraz spróbuj wydostać się z tego odbijającego|domu i weź następną skrzynię.", -- Basic_Training_-_Movement @@ -1605,7 +1605,7 @@ ["Paul McHoggy"] = "Paul McJeżu", -- A_Space_Adventure:ice01, A_Space_Adventure:ice02 ["Pause: [P]"] = "Pauza: [P]", -- Basic_Training_-_Movement ["Penalty: If you violate above rule, you have to skip in the next turn."] = "Kara: Jeśli naruszysz powyższą zasadę, będziesz musiał opuścić następną turę.", -- WxW --- ["Penguin Roar"] = "", -- Continental_supplies + ["Penguin Roar"] = "Ryk pingwina", -- Continental_supplies ["Penguin roar: [Deal 15 damage + 10% of your hog’s health to all hogs around you and get 2/3 back]"] = "Ryk pingwina: [Zadaj 15 obrażeń + 10% zdrowia twojego jeża wszystkim jeżom wokół ciebie i otrzymaj 2/3 z powrotem]", -- Continental_supplies ["Penguin roar: [Deal 15 damage + 10% of your hogs health to all hogs around you and get 2/3 back]"] = "Ryk pingwina: [Zadaje 15 obrażeń + 10% zdrowia twojego jeża wszystkim jeżom dookoła i dostaje 2/3 z powrotem]", -- Continental_supplies ["Perfect! Now try to get the next crate without hurting yourself!"] = "Idealnie! Teraz spróbuj zdobyć następną skrzynię bez zranienia się!", -- A_Classic_Fairytale:first_blood @@ -1653,7 +1653,7 @@ ["- Place your clan flag at the end of your first turn"] = "- Ustaw flagę swojego klanu na końcu swojej pierwszej tury", -- Capture_the_Flag ["- Place your team flag at the end of your first turn"] = "- Postaw flagę twojej drużyny na końcu swojej pierwszej tury", -- Capture_the_Flag ["Planes used: %d"] = "Użyte samoloty: %d", -- User_Mission_-_RCPlane_Challenge - ["Planes Used:"] = "Użyte Samoloty: %d", -- User_Mission_-_RCPlane_Challenge + ["Planes Used:"] = "Użyte Samoloty:", -- User_Mission_-_RCPlane_Challenge ["Planes Used"] = "Użyte Samoloty", -- User_Mission_-_RCPlane_Challenge ["Planets with all missions completed will be marked with two flowers."] = "Planety ze wszystkimi misjami ukończonymi będą zaznaczone dwoma kwiatkami.", -- A_Space_Adventure:cosmos ["Planets with completed main missions will be marked with a flower."] = "Planety z ukończonymi głównymi misjami będą zaznaczone kwiatkiem.", -- A_Space_Adventure:cosmos @@ -1674,7 +1674,7 @@ ["points"] = "punkty", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle ["point(s)"] = "punkt(y)", -- TargetPractice, Mutant ["Poisonous Apple"] = "Zatrute Jabłko", -- A_Space_Adventure:fruit02 --- ["Poisonous, deals no damage."] = "", -- Continental_supplies + ["Poisonous, deals no damage."] = "Zatrute, nie zadaje obrażeń.", -- Continental_supplies ["Poison"] = "Truciciel", ["Pokémon"] = "Pokémon", ["Poor %s (%s) died %d times."] = "Biedny %s (%s) umarł %d razy.", -- Mutant @@ -1694,10 +1694,10 @@ ["Prepare to flee!"] = "Przygotuj się do ucieczki!", -- A_Space_Adventure:cosmos ["Prepare yourself"] = "Przygotuj się", ["Press [Attack] (space bar by default) to start,|repeadedly tap the up, left and right movement keys to accelerate."] = "Wciśnij [Atak] (domyślnie spacja), by zacząć,|wielokrotnie wciskaj góra, lewo i prawo, by przyśpieszyć.", -- Basic_Training_-_Flying_Saucer --- ["Press [Attack] (space bar by default) to start,|repeatedly tap the up, left and right movement keys to accelerate."] = "", -- Basic_Training_-_Flying_Saucer + ["Press [Attack] (space bar by default) to start,|repeatedly tap the up, left and right movement keys to accelerate."] = "Wciśnij [Atak] (domyślnie spacja), by zacząć,|wciśnij wielokrotnie przyciski ruchu w górę, lewo i prawo, by przyśpieszyć.", -- Basic_Training_-_Flying_Saucer ["Press [Attack] to begin."] = "Wciśnij [Atak], by zacząć.", -- A_Classic_Fairytale:first_blood --- ["Press [Attack] to confirm."] = "", -- Continental_supplies --- ["Press [Attack] to select this continent!"] = "", -- Continental_supplies + ["Press [Attack] to confirm."] = "Wciśnik [Atak], by zatwierdzić.", -- Continental_supplies + ["Press [Attack] to select this continent!"] = "Wciśnij [Atak], by wybrać ten kontynent!", -- Continental_supplies ["Press [Left] and [Right] to change the difficulty."] = "Wciśnij [Lewo] i [Prawo], by zmienić trudność.", -- A_Classic_Fairytale:first_blood ["Press [Left] or [Right] to move around, [Enter] to jump"] = "Wciśnij [Lewo] lub [Prawo], by poruszaćsię, [Enter] by skoczyć.", -- A_Classic_Fairytale:first_blood ["Press [Long jump] to accept this configuration and begin placing hedgehogs."] = "Wciśnij [Długi skok] by zaakceptować tę konfigurację i zacząć ustawiać jeże.", -- WxW @@ -1705,7 +1705,7 @@ ["Press [Precise] to skip intro"] = "Naciśnij [Precyzja] by pominąć intro", ["Press [Up] and [Down] to move between menu items.|Press [Attack], [Left], or [Right] to toggle."] = "Wciśnij [Góra] i [Dół], by poruszać się między pozycjami menu.|Wciśnij [Atak], [Lewo] lub [Prawo], by przełączyć.", -- WxW ["Prestigious Pilot"] = "Prestiżowy pilot", -- User_Mission_-_RCPlane_Challenge --- ["Princess"] = "", -- A_Classic_Fairytale:family, A_Classic_Fairytale:journey + ["Princess"] = "Księżniczka", -- A_Classic_Fairytale:family, A_Classic_Fairytale:journey ["Princess Peach"] = "Księżniczka Peach", ["Private Nolak"] = "Szeregowiec Nolak", -- Target_Practice_-_Cluster_Bomb ["Problems, dude? Chillax!"] = "Problem, koleś? Wrzuć na luz!", -- A_Classic_Fairytale:epil @@ -1734,7 +1734,7 @@ ["Raging Buffalo"] = "Wściekły Bawół", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:united ["Ramesses"] = "Ramzes", ["Ramon"] = "Ramon", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow --- ["Random continent"] = "", -- Continental_supplies + ["Random continent"] = "Losowy kontynent", -- Continental_supplies ["Rank: %s"] = "Ranga: %s", -- User_Mission_-_RCPlane_Challenge ["Razac"] = "Razak", -- portal ["RC Plane Challenge"] = "Wyzwanie Samolotowe", -- User_Mission_-_RCPlane_Challenge @@ -1769,14 +1769,14 @@ ["Return to Leaks A Lot!"] = "Wróć do Sporego Przecieka!", -- A_Classic_Fairytale:shadow ["Return to the mission menu by pressing the \"Go back\" button."] = "Wróć do menu misji, wciskając przycisk \"Wstecz\".", -- A_Space_Adventure:cosmos ["Return to the Surface"] = "Wróć na Powierzchnię", -- A_Space_Adventure:fruit02 --- ["Return to the training menu by pressing the “Go back” button."] = "", -- Basic_Training_-_Movement + ["Return to the training menu by pressing the “Go back” button."] = "Wróć do menu treningu, wciskając przycisk \"Powrót\".", -- Basic_Training_-_Movement ["Rhombus"] = "Romb", -- Basic_Training_-_Movement ["Rider"] = "Jeźdźec", -- portal ["Rifleman"] = "Strzelec", -- Battalion ["Righteous Beard"] = "Cnotliwa Broda", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:first_blood, A_Classic_Fairytale:queen, A_Classic_Fairytale:united ["Right Tong"] = "Prawy Tong", -- Bazooka_Battlefield ["Ripe"] = "Dojrzały", --- ["Rise the water if nobody else is in the circle and deal 6 damage to all enemy hogs."] = "", -- Continental_supplies + ["Rise the water if nobody else is in the circle and deal 6 damage to all enemy hogs."] = "Podwyższ wodę, jeśli nikt inny nie jest w kole i zadaj 6 obrażeń wszystkim wrogim jeżom.", -- Continental_supplies ["Robert Yellow Apple"] = "Robert Żółte Jabłko", -- A_Space_Adventure:fruit01 ["Rocket"] = "Rakieta", -- Big_Armory ["Ronald"] = "Ronald", -- portal @@ -1816,7 +1816,7 @@ ["Ryu"] = "Ryu", ["%s: %.1fs"] = "%s: %.1fs", -- Racer, TechRacer ["%s (+1)"] = "%s (+1)", -- A_Space_Adventure:fruit03 --- ["Sabotage all hogs in the circle and fire a cluster above you.|Sabotaged hogs lose health and have to deal with a very high gravity during their turn."] = "", -- Continental_supplies + ["Sabotage all hogs in the circle and fire a cluster above you.|Sabotaged hogs lose health and have to deal with a very high gravity during their turn."] = "Sabotuj wszystkie jeże w kole i wystrzel odłamek nad siebie.|Sabotowane jeże tracą zdrowie i muszą sobie poradzić z wysoką grawitacją w swojej turze.", -- Continental_supplies ["Sabotage/Flare: [Sabotage all hogs in the circle and deal ~1 dmg OR Fire a cluster up into the air]"] = "Sabotaż/Flara: [Sabotuje wszystkie jeże w kole i zadaje ~1 obrażeń LUB wystrzeliwuje w powietrze odłamek]", -- Continental_supplies ["Saint"] = "Święty", -- HedgeEditor, The_Specialists ["Salivaslurper"] = "Ślinosiorb", -- A_Classic_Fairytale:united @@ -1825,7 +1825,7 @@ ["Salvation was one step closer now..."] = "Odkupienie było teraz o krok bliżej...", -- A_Classic_Fairytale:dragon ["Sam"] = "Sam", -- A_Space_Adventure:cosmos ["Sandals?! I thought you left your ring!"] = "Sandały?! Myślałem, że zostawiłeś swój pierścień!", -- A_Classic_Fairytale:queen --- ["%s and %s enter the battlefield"] = "", -- A_Space_Adventure:fruit01 + ["%s and %s enter the battlefield"] = "%s i %s wchodzą na pole bitwy", -- A_Space_Adventure:fruit01 ["Sandstorm"] = "Burza piaskowa", -- A_Space_Adventure:desert01 ["Sandy"] = "Piaskowy", -- A_Space_Adventure:desert01 ["Save as many hapless hogs as possible!"] = "Uratuj jak najwięcej nieszczęsnych jeży jak to możliwe!", @@ -1853,9 +1853,9 @@ ["Scores:"] = "Wyniki:", -- Mutant ["Scoring: "] = "Wynki: ", -- Mutant ["Script parameter examples:"] = "Przykłady parametrów skryptu:", -- Gravity --- ["%s (%d)"] = "", -- Continental_supplies + ["%s (%d)"] = "%s (%d)", -- Continental_supplies ["%s: %d (deaths: %d)"] = "%s: %d (śmierci: %d)", -- Mutant --- ["%s (%d), %d sec"] = "", -- Continental_supplies + ["%s (%d), %d sec"] = "%s (%d), %d sekund", -- Continental_supplies ["%s: Did not finish"] = "%s: Nie ukończył", -- Racer, TechRacer ["%s did not finish the race."] = "%s nie ukończył wyścigu", -- Racer, TechRacer ["%s didn't expect that."] = "%s nie spodziewał się tego", -- User_Mission_-_Rope_Knock_Challenge @@ -1863,7 +1863,7 @@ ["%s doesn’t really know how to handle a rope properly."] = "%s nie wie tak naprawdę jak posługiwać się liną.", -- ClimbHome ["%s (+%d)"] = "%s (+%d)", -- Battalion ["%s: %d"] = "%s: %d", -- Capture_the_Flag, Control --- ["%s, %d sec"] = "", -- Continental_supplies + ["%s, %d sec"] = "%s, %d sekund", -- Continental_supplies ["Search for the device with the help of the other hedgehogs "] = "Poszukaj urządzenia z pomocą innych jeży", -- A_Space_Adventure:fruit02 ["Searching in the dust"] = "Poszukiwanie w kurzu", -- A_Space_Adventure:desert01 ["Searching the stars!"] = "Szukanie gwiazd!", -- A_Space_Adventure:cosmos @@ -1874,7 +1874,7 @@ ["See ya!"] = "Do zobaczenia!", ["Segmentation Paul"] = "Naruszenie Pawła", -- A_Classic_Fairytale:dragon ["Select a placement mode and read the infos|in the mission panel to learn how to use it."] = "Wybierz tryb ustawiania i przeczytaj informacje|w panelu misji, by dowiedzieć się jak go używać.", -- HedgeEditor --- ["Select continent"] = "", -- Continental_supplies + ["Select continent"] = "Wybierz kontynent", -- Continental_supplies ["Select continent!"] = "Wybierz kontynent!", -- Continental_supplies ["Selection Mode"] = "Tryb Wyboru", -- HedgeEditor ["Select, modify, or delete girders, rubbers and sprites"] = "Wybierz, modyfikuj lub usuń belki, gumy i grafiki", -- HedgeEditor @@ -1883,16 +1883,16 @@ ["Select Rope"] = "Wybierz linę", -- Basic_Training_-_Rope ["Select “Switch Hedgehog” from the ammo menu and|hit the “Attack” key to proceed."] = "Wybierz “Zmień jeża” z menu amunicji i wciśnij “Atak”, by kontynuować", -- Basic_Training_-_Movement ["Select “Switch Hedgehog” from the ammo menu and|hit the “Attack” key."] = "Wybierz “Zmień jeża” z menu amunicji i wciśnij “Atak”.", -- Basic_Training_-_Movement --- ["Select the current continent."] = "", -- Continental_supplies + ["Select the current continent."] = "Wybierz aktualny kontynent.", -- Continental_supplies ["Select the rope to begin!"] = "Wybierz linę, by zacząć!", -- Basic_Training_-_Rope --- ["Select this item for a random continent."] = "", -- Continental_supplies + ["Select this item for a random continent."] = "Wybierz ten przedmiot dla losowego kontynentu.", -- Continental_supplies ["Select weapon: [Left click]"] = "Wybierz broń: [Lewy klik]", -- Basic_Training_-_Bazooka, Basic_Training_-_Grenade ["Select Weapon"] = "Wybierz broń", -- Basic_Training_-_Bazooka, Basic_Training_-_Grenade ["Select win/lose condition: [Left], [Right]"] = "Wybierz warunki wygranej/przegranej: [Lewo], [Prawo]", -- HedgeEditor ["Select your continent/weaponset: with the \"Up\" or \"Down\" keys. You can also select one with the weapons menu."] = "Wybierz swój kontynent/zestaw broni używając klawiszy \"Góra\" lub \"Dół\". Możesz także wybrać je z menu broni.", -- Continental_supplies ["Select your continent/weaponset: With the \"Up\" or \"Down\" keys. You can also select one with the weapons menu."] = "Wybierz swój kontynent/zestaw broni wciskając klawisze \"Góra\" lub \"Dół\". Możesz także je wybrać używając menu broni.", -- Continental_supplies --- ["Select your continent with [Up]/[Down] or by selecting a representative weapon."] = "", -- Continental_supplies --- ["%s enters the battlefield"] = "", -- A_Space_Adventure:fruit01 + ["Select your continent with [Up]/[Down] or by selecting a representative weapon."] = "Wybierz swój kotnynent używając [Góra]/[Dół] lub wybierając reprezentatywną broń.", -- Continental_supplies + ["%s enters the battlefield"] = "%s wchodzi na pole bitwy", -- A_Space_Adventure:fruit01 ["Sergey"] = "Sergiusz", ["Set bounciness: [Left Shift] + [1]-[5]"] = "Wybierz odbijalność: [Lewy Shift] + [1]-[5]", -- Basic_Training_-_Grenade ["Set detonation timer: [1]-[5]"] = "Wybierz czas detonacji: [1]-[5]", -- Basic_Training_-_Grenade @@ -2008,7 +2008,7 @@ ["Spacetrip"] = "Kosmiczna wycieczka", -- A_Space_Adventure:cosmos ["Spawn the crate and attack!"] = "Ustaw skrzynię i atakuj!", -- WxW ["Specials: Kings and air generals drop helpers, not weapons"] = "Specjalne: Królowie i powietrzni generałowie upuszczają pomocników, nie bronie", -- Battalion --- ["Special weapons:"] = "", -- Continental_supplies + ["Special weapons:"] = "Bronie specjalne:", -- Continental_supplies ["Special Weapons:"] = "Specjalne bronie:", -- Continental_supplies ["Speckles"] = "Spekles", ["Specs Appeal"] = "Urok Speców", @@ -2032,10 +2032,10 @@ ["Squirtle"] = "Squirtle", ["Squishy"] = "Grząski", ["%s reached home in %.3f seconds. Congratulations!"] = "%s dotarł do domu w %.3f sekund. Gratulacje!", -- ClimbHome --- ["%s: %s"] = "", -- Continental_supplies + ["%s: %s"] = "%s: %s", -- Continental_supplies ["%s (%s) destroyed %d invaders in one round."] = "%s (%s) zniszczył %d najeźdźców w jednej rundzie.", -- Space_Invasion ["%s (%s) does not have to feel ashamed for their best height of %d."] = "%s (%s) nie musi się wstydzić swojej najlepszej wysokości %d.", -- ClimbHome --- ["%s, select your continent!"] = "", -- Continental_supplies + ["%s, select your continent!"] = "%s, wybierz swój kontynent!", -- Continental_supplies ["%s (%s) gave short shrift to the invaders: Longest combo of %d!"] = "%s (%s) dał najeźdźcom krótką pokutę: Najdłuższe kombo %d!", -- Space_Invasion ["%s (%s) has been invited to join the Planetary Association of the Hedgehogs, it destroyed a staggering %d invaders in just one round!"] = "%s (%s) został zaproszony do dołączenia do Planetarnego Stowarzyszenia Jeży, zniszczył zdumiewające %d najeźdźców w jednej rundzie!", -- Space_Invasion ["%s (%s) has captured the flag %d times."] = "%s (%s) przejął flagę %d razy.", -- Capture_the_Flag @@ -2056,7 +2056,7 @@ ["%s (%s) shot %d invaders and never missed in the best round!"] = "%s (%s) zestrzelił %d najeźdźców i nigdy nie spudłował w najlepszej rundzie!", -- Space_Invasion ["%s (%s) struck like a meteor: %d points in only one round!"] = "%s (%s) uderzył jak meteor: %d punktów w tylko jednej rundzie!", -- Space_Invasion ["%s still had a long way to go."] = "%s nadal miał daleką drogę do przejścia.", -- ClimbHome --- ["%s stumbled."] = "", -- User_Mission_-_Rope_Knock_Challenge + ["%s stumbled."] = "%s potknął się.", -- User_Mission_-_Rope_Knock_Challenge ["%s (%s) tumbles like no other: %d points in one round."] = "%s (%s) toczy się jak nikt inny: %d punktów w jednej rundzie.", -- Space_Invasion ["%s stumpled."] = "%s potknął się.", -- User_Mission_-_Rope_Knock_Challenge ["%s (%s) was certainly not afraid of heights: Peak height of %d!"] = "%s (%s) z pewnością nie bał się wysokości: Szczytowa wysokość %d!", -- ClimbHome @@ -2064,7 +2064,7 @@ ["%s (%s) was on fire: Longest combo of %d."] = "%s (%s) palił się: Najdłuższe kombo %d.", -- Space_Invasion ["%s (%s) was panicly afraid of the water and decided to get in a safe distance of %d from it."] = "%s (%s) panicznie bał się wody i zdecydował się dostać na bezpieczną odległość %d od niej.", -- ClimbHome ["%s (%s) was the best baby tumbler: %d points in one round."] = "%s (%s) był najlepszym dziecięcym akrobatą: %d punktów w jednej rundzie.", -- Space_Invasion - ["%s (%s) was the greediest hedgehog and collected %d crates."] = "%s (%s) był najchciwszym jeżem i zebrał % skrzyń.", -- Mutant + ["%s (%s) was the greediest hedgehog and collected %d crates."] = "%s (%s) był najchciwszym jeżem i zebrał %d skrzyń.", -- Mutant ["%s (%s) was undoubtedly the very best professional tumbler in this game: %d points in one round!"] = "%s (%s) był niewątpliwie najlepszym profesjonalnym akrobatą w tej grze: %d punktów w jednej rundzie.", -- Space_Invasion ["Star"] = "Gwiazda", -- Big_Armory ["Status update"] = "Aktualizacja statusu", -- Racer, TechRacer @@ -2090,7 +2090,7 @@ ["Stop right there, puny worms!"] = "Stójcie tam, mizerne robaki!", -- A_Classic_Fairytale:queen ["Street Fighters"] = "Uliczni Wojownicy", ["Strength: %d (multiplier for ammo)"] = "Siła: %d (wielokrotność amunicji)", -- Battalion --- ["Strong knockback, but no poison."] = "", -- Continental_supplies + ["Strong knockback, but no poison."] = "Silny odrzut, ale bez trucizny.", -- Continental_supplies ["Stronglings"] = "Silniacy", -- A_Classic_Fairytale:shadow ["Structure Placement Mode"] = "Tryb Ustawiania Struktur", -- Construction_Mode ["Structure Placer"] = "Stawiacz Struktur", -- Construction_Mode @@ -2104,7 +2104,7 @@ ["Sunflame"] = "Słoneczny Płomień", -- Big_Armory ["Super weapons: A few crates contain very powerful weapons."] = "Super bronie: Parę skrzyń zawiera bardzo potężne bronie.", -- WxW ["Super weapons: %s"] = "Super bronie: %s", -- WxW --- ["Supplies: Each continent gives you unique weapons, specials and health."] = "", -- Continental_supplies + ["Supplies: Each continent gives you unique weapons, specials and health."] = "Posiłki: Każdy kontynent daje ci unikalne bronie, speciały i zdrowie.", -- Continental_supplies ["Support Station: Allows placement of crates."] = "Stacja Wsparcia: Pozwala na ustawianie skrzyń.", -- Construction_Mode ["Support Station"] = "Stacja Wsparcia", -- Construction_Mode ["Sure!"] = "Jasne!", -- A_Classic_Fairytale:epil @@ -2112,16 +2112,16 @@ ["Surf Before Crate: You must bounce off the water once before you can get crates."] = "Serfuj przed skrzynią: Musisz raz się odbić od wody, zanim będziesz mógł zdobyć skrzynie.", -- WxW ["Surfer! +15 points!"] = "Surfer! +15 punktów!", -- Space_Invasion ["Surfer!"] = "Surfer!", -- WxW --- ["Surprise supplies: Get 1-3 random weapons each turn."] = "", -- Continental_supplies + ["Surprise supplies: Get 1-3 random weapons each turn."] = "Niespodziewane posiłki: Dostań 1-3 losowych broni w każdej turze.", -- Continental_supplies ["Survive!|Hint: Cinematics can be skipped with the [Precise] key."] = "Przetrwaj!Porada: Przerywniki mogą zostać pominięte przyciskiem [Precyzja].", -- A_Classic_Fairytale:shadow ["%s violated the “All But Last” rule and will be penalized."] = "%s narusza zasadę \"Wszyscy Oprócz Ostatniego\" i będzie ukarany.", -- WxW ["%s violated the “Kill The Leader” rule and will be penalized."] = "%s narusza zasadę \"Zabij przywódcę\" i będzie ukarany.", -- WxW --- ["Swap place with a random enemy in the circle."] = "", -- Continental_supplies + ["Swap place with a random enemy in the circle."] = "Zamień miejsce z losowym wrogiem w kole.", -- Continental_supplies ["%s was a good target."] = "%s był dobrym celem.", -- User_Mission_-_Rope_Knock_Challenge ["%s was close to home."] = "%s był blisko domu.", -- ClimbHome ["%s was damn close to home."] = "%s był piekielnie blisko domu.", -- ClimbHome ["%s was doomed from the beginning."] = "%s był na to skazany od początku.", -- User_Mission_-_Rope_Knock_Challenge --- ["%s was extracted from the scheme"] = "", -- Continental_supplies + ["%s was extracted from the scheme"] = "%s został wydobyty ze schematu", -- Continental_supplies ["%s was good, but not good enough."] = "%s był dobry, ale nie wystarczająco.", -- ClimbHome ["%s was knocked away."] = "%s został zrzucony.", -- User_Mission_-_Rope_Knock_Challenge ["%s was really unlucky."] = "%s był prawdziwym pechowcem.", -- User_Mission_-_Rope_Knock_Challenge @@ -2134,7 +2134,7 @@ ["Swing: [Left]/[Right]"] = "Huśtaj się: [Lewo]/[Prawo]", -- Basic_Training_-_Rope ["%s wins!"] = "%s wygrywa!", -- Racer, Space_Invasion, TechRacer, ClimbHome ["%s wins with a best time of %.1fs."] = "%s wygrywa z najlepszym czasem %.1fs.", -- Racer, TechRacer --- ["Switch: Drop ball of dirt from parachute (once)"] = "", -- Continental_supplies + ["Switch: Drop ball of dirt from parachute (once)"] = "Zmiana: Upuść kulę ziemi ze spadochronu (raz)", -- Continental_supplies ["Switched to "] = "Przełączono na ", ["Switch Hedgehog (1/3)"] = "Zmiana jeża (1/3)", -- Basic_Training_-_Movement ["Switch Hedgehog (2/3)"] = "Zmiana jeża (2/3)", -- Basic_Training_-_Movement @@ -2143,7 +2143,7 @@ ["Switch hedgehog: [Tabulator]"] = "Zmień jeża: [Tab]", -- Basic_Training_-_Movement ["Switch Hog"] = "Zmień Jeża", -- Construction_Mode ["switch"] = "przełącz", -- Continental_supplies --- ["Switch: Select weapon special"] = "", -- Continental_supplies + ["Switch: Select weapon special"] = "Zmiana: Wybierz speciał broni", -- Continental_supplies ["Switch: Toggle crate radar"] = "Zmiana: Przełącz radar skrzyń", -- WxW ["Swords"] = "Miecze", -- Bazooka_Battlefield ["Syntax Errol"] = "Błąt Składni", -- A_Classic_Fairytale:dragon @@ -2171,7 +2171,7 @@ ["Team Identity Mode"] = "Tryb Tożsamości Drużyny", -- HedgeEditor ["TEAM IDENTITY MODE"] = "TRYB TOŻSAMOŚCI DRUŻYNY", -- HedgeEditor ["Team of Hearts"] = "Drużyna Serc", -- Challenge_-_Speed_Shoppa_-_Hedgelove --- ["Teams are tied! Continue playing rounds until we have a winner!"] = "", -- Space_Invasion + ["Teams are tied! Continue playing rounds until we have a winner!"] = "Drużyny remisują! Grajcie rundy, aż nie wyłonimy zwycięzcy!", -- Space_Invasion ["Team Scores:"] = "Wyniki drużyn:", -- Control ["Team scores:"] = "Wyniki drużyn:", -- Space_Invasion ["Teamwork 2"] = "Praca zespołowa 2", -- User_Mission_-_Teamwork_2 @@ -2185,12 +2185,12 @@ ["Teleport hint: just use the mouse to select the destination!"] = "Porada do teleportu: po prostu użyj myszki, by wybrać cel teleportacji!", -- A_Classic_Fairytale:dragon ["Teleport hint: Just use the mouse to select the destination!"] = "Wskazówka do teleportu: Uzyj po prostu myszki, by wybrać cel!", -- A_Classic_Fairytale:dragon ["Teleport"] = "Teleport", -- Construction_Mode, Frenzy --- ["Teleport to the impact location."] = "", -- Continental_supplies --- ["Teleport to the top of the map, expect fall damage!"] = "", -- Continental_supplies + ["Teleport to the impact location."] = "Teleportuj się do miejsca uderzenia.", -- Continental_supplies + ["Teleport to the top of the map, expect fall damage!"] = "Teleportuj się na szczyt mapy, spodziewaj się obrażeń od upadku!", -- Continental_supplies ["Teleport unsuccessful. Please teleport within a clan teleporter's sphere of influence."] = "Teleportacja nieudana. Teleportuj się wewnątrz sfery wpływu teleportu klanowego.", -- Construction_Mode ["Teleport Unsuccessful. Please teleport within a clan teleporter's sphere of influence."] = "Teleport Nieudany. Proszę teleportować się wewnątrz sfery wpłyu klanowego teleportu.", -- Construction_Mode ["Tentacle Terror"] = "Mackowy terror", -- Tentacle_Terror --- ["Textile industry: Will give you a parachute every second turn."] = "", -- Continental_supplies + ["Textile industry: Will give you a parachute every second turn."] = "Przemysł włókienniczy: Da ci spadochron co drugą turę.", -- Continental_supplies ["Thanks, dude! It really means a lot to me."] = "Dzięki, koleś! To naprawdę wiele dla mne znaczy.", -- A_Classic_Fairytale:epil ["Thanks!"] = "Dzięki!", -- A_Classic_Fairytale:family ["Thanks, man! It really means a lot to me."] = "Dzięki, ziom! To naprawdę wiele dla mne znaczy.", -- A_Classic_Fairytale:epil @@ -2219,7 +2219,7 @@ ["The aliens respect me, even worship me!"] = "Obcy mnie respektują, nawet mnie czczą!", -- A_Classic_Fairytale:queen ["The ally units share their ammo."] = "Sprzymierzone jednostki dzielą swoją amunicję.", -- A_Space_Adventure:fruit01 ["The ammo of %s has been vaporized"] = "Amunicja %s została odparowana", -- Construction_Mode --- ["The answer is ... entertainment. You'll see what I mean."] = "", -- A_Classic_Fairytale:backstab + ["The answer is ... entertainment. You'll see what I mean."] = "Odpowiedź to... rozrywka. Zobaczysz, co mam na myśli.", -- A_Classic_Fairytale:backstab ["The answer is...entertaintment. You'll see what I mean."] = "Odpowiedź to... rozrywka. Zobaczycie co mam na myśli.", -- A_Classic_Fairytale:backstab ["The anti-portal surface is all over the floor, and I have nothing to kill him. Dropping something could hurt him enough to kill him."] = "Antyportalowa powierzchnia jest na całej podłodze, a ja nie mam nic, by go zabić. Zrzucenie czegoś mogłoby go skrzywdzić wystarczająco, by go zabić.", -- portal ["The big bang"] = "Wielki wybuch", -- A_Space_Adventure:final @@ -2228,15 +2228,15 @@ ["The Bull's Eye"] = "Bycze Oko", -- A_Classic_Fairytale:first_blood ["The caves are well hidden, they won't find us there!"] = "Jaskinie są dobrze ukryte, nie znajdą nas tutaj!", -- A_Classic_Fairytale:united ["The clan of the Red Strawberry wants to take over the dominion and overthrow King Pineapple."] = "Klan Czerwonych Truskawek chce przejąć zwierzchnictwo i obalić Króla Ananasa.", -- A_Space_Adventure:fruit01 --- ["The continent of cowards"] = "", -- Continental_supplies --- ["The continent of dust"] = "", -- Continental_supplies --- ["The continent of firearms"] = "", -- Continental_supplies --- ["The continent of greed"] = "", -- Continental_supplies --- ["The continent of guerilla tactics"] = "", -- Continental_supplies --- ["The continent of ice and science"] = "", -- Continental_supplies --- ["The continent of medicine"] = "", -- Continental_supplies --- ["The continent of ninjas"] = "", -- Continental_supplies --- ["The continent of sports"] = "", -- Continental_supplies + ["The continent of cowards"] = "Kontynent tchórzy", -- Continental_supplies + ["The continent of dust"] = "Kontynent pyłu", -- Continental_supplies + ["The continent of firearms"] = "Kontynent broni palnej", -- Continental_supplies + ["The continent of greed"] = "Kontynent chciwości", -- Continental_supplies + ["The continent of guerilla tactics"] = "Kontynent taktyk partyzanckich", -- Continental_supplies + ["The continent of ice and science"] = "Kontynent lodu i nauki", -- Continental_supplies + ["The continent of medicine"] = "Kontynent lekarstw", -- Continental_supplies + ["The continent of ninjas"] = "Kontynent ninja", -- Continental_supplies + ["The continent of sports"] = "Kontynent sportu", -- Continental_supplies ["The Crate Frenzy"] = "Szał skrzyń", -- A_Classic_Fairytale:first_blood ["The Customer is King"] = "Król jest klientem", -- Challenge_-_Speed_Shoppa_-_ShoppaKing ["The device part has been stolen!"] = "Część urządzenia została skradziona!", -- A_Space_Adventure:fruit02 @@ -2265,7 +2265,7 @@ ["The flag will respawn next round."] = "Flaga pojawi się ponownie przy następnej rundzie.", ["The flood has stopped! Challenge over."] = "Powódź się zatrzymała! Wyzwanie skończone.", -- User_Mission_-_That_Sinking_Feeling ["The food bites back"] = "Jedzenie się odgryza", -- A_Classic_Fairytale:backstab --- ["The forgotten continent"] = "", -- Continental_supplies + ["The forgotten continent"] = "Zapomniany kontynent", -- Continental_supplies ["The giant umbrella from the last crate should help break the fall."] = "Ogromna parasolka z ostatniej skrzyni powinna pomóc pokonać upadek.", -- A_Classic_Fairytale:first_blood ["The Great Escape"] = "Wielka ucieczka", -- User_Mission_-_The_Great_Escape ["The Green Bananas lost, try again!"] = "Zielone Banany przegrały, spróbuj ponownie!", -- A_Space_Adventure:fruit01 @@ -2295,7 +2295,7 @@ ["The next 4 times you play the \"The last encounter\" mission you'll get 20 more hit points and a laser sight."] = "Przez następne 4 razy, w których zagrasz misję \"Ostateczne spotkanie\", dostaniesz 20 więcej punktów zdrowia i celownik laserowy.", -- A_Space_Adventure:death02 ["The next crate is an utility crate."] = "Następna skrzynia zawiera narzędzia.", -- Basic_Training_-_Movement ["The next one is pretty hard! |Tip: You have to do multiple swings!"] = "Następne jest bardzo trudne!|Porada: Masz wielokrotne wymachy!", -- Basic_Training_-_Rope - ["The next target can only be reached by something called “bouncing bomb”."] = "Następny cel może być sięgnięty jedynie przez coś nazwane "odbijająca się bomba".", -- Basic_Training_-_Bazooka + ["The next target can only be reached by something called “bouncing bomb”."] = "Następny cel może być sięgnięty jedynie przez coś nazwane \"odbijająca się bomba\".", -- Basic_Training_-_Bazooka ["The next target is high in the sky."] = "Następny cel jest wysoko w niebie.", -- Basic_Training_-_Bazooka ["Then how do they keep appearing?"] = "Więc jak oni się cały czas pojawiają?", -- A_Classic_Fairytale:shadow ["The Ninja-Samurai Alliance"] = "Sojusz Ninja-Samurajski", @@ -2323,7 +2323,7 @@ ["The score and deaths are shown next to the team bar."] = "Wynik i śmierci są pokazane obok paska drużyny.", -- Mutant ["These girders are slippery, like ice."] = "Belki są śliskie jak lód.", -- Basic_Training_-_Movement ["These primitive people are so funny!"] = "Prymitywni ludzie są tacy zabawni!", -- A_Classic_Fairytale:backstab --- ["These weapon specials cannot be used close to other hogs."] = "", -- Continental_supplies + ["These weapon specials cannot be used close to other hogs."] = "Te speciały broni nie mogą zostać użyte w pobliżu innych jeży.", -- Continental_supplies ["The Shadow Falls"] = "Zapada cień", -- A_Classic_Fairytale:shadow ["The Showdown"] = "Pojedynek", -- A_Classic_Fairytale:shadow ["The Slaughter"] = "Rzeź", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:first_blood @@ -2331,12 +2331,12 @@ ["THE SPECIALISTS"] = "SPECJALIŚCI", ["The spinning arrows above your hedgehog show|which hedgehog is selected right now."] = "Kręcące się strzałki nad twoim jeżem pokazują,|który jeż jest właśnie wybrany.", -- Basic_Training_-_Movement ["The spirits of the ancerstors are surely pleased, Leaks A Lot."] = "Dusze przodków są z pewnością zadowolone, Spory Przecieku.", -- A_Classic_Fairytale:first_blood --- ["The spirits of the ancestors are surely pleased, Leaks A Lot."] = "", -- A_Classic_Fairytale:first_blood + ["The spirits of the ancestors are surely pleased, Leaks A Lot."] = "Dusze przodków z pewnością są zadowolone, Spory Przecieku.", -- A_Classic_Fairytale:first_blood ["The targets will guide you through the training."] = "Cele poprowadzą cię przez trening.", -- Basic_Training_-_Rope ["The team continued their quest of finding the rest of the tribe."] = "Drużyna kontynuowała swoje zadanie odnalezienia reszty plemienia.", -- A_Classic_Fairytale:queen --- ["The teams are tied for the fastest time."] = "", -- Racer, TechRacer --- ["The teams were tied, so an additional round has been played to determine the winner."] = "", -- Space_Invasion --- ["The teams were tied, so %d additional rounds have been played to determine the winner."] = "", -- Space_Invasion + ["The teams are tied for the fastest time."] = "Drużyny remisują z najszybszym czasem.", -- Racer, TechRacer + ["The teams were tied, so an additional round has been played to determine the winner."] = "Drużyny zremisowały, więc dodatkowa runda została zagrana, by wyłonić zwycięzcę.", -- Space_Invasion + ["The teams were tied, so %d additional rounds have been played to determine the winner."] = "Drużyny remisowały, więc %d dodatkowych rund zostało zagranych, by wyłonić zwycięzcę.", -- Space_Invasion ["The time that you have left when you reach the blue hedgehog will be added to the next turn."] = "Czas, który ci pozostanie po dotarciu do niebieskiego jeża, zosanie dodany do następnej tury.", -- A_Space_Adventure:moon02 ["The Torment"] = "Udręka", -- A_Classic_Fairytale:first_blood ["The truth about Professor Hogevil"] = "Prawda o Profesorze Jeżozło", -- A_Space_Adventure:moon02 @@ -2345,7 +2345,7 @@ ["The Tunnel Maker"] = "Wytwórca Tuneli", -- A_Classic_Fairytale:journey ["The Ultimate Weapon"] = "Broń Ostateczna", -- A_Classic_Fairytale:first_blood ["The Union"] = "Unia", -- A_Classic_Fairytale:enemy --- ["The Union: You can select a hedgehog at the start of your turns."] = "", -- Continental_supplies + ["The Union: You can select a hedgehog at the start of your turns."] = "Unia: Możesz wybrać jeża na początku swoich tur.", -- Continental_supplies ["The village, unprepared, was destroyed by the cyborgs..."] = "Wioska, nieprzygotowana, została zniszczona przez cyborgów...", -- A_Classic_Fairytale:journey ["The walk of Fame"] = "Spacer Chwały", -- A_Classic_Fairytale:shadow ["The wasted youth"] = "Zmarnowana młodość", -- A_Classic_Fairytale:first_blood @@ -2374,7 +2374,7 @@ ["This allows you to create and place mines,|sticky mines and barrels anywhere within your|clan's area of influence at the cost of energy."] = "To pozwala ci stworzyć i ustawić miny,|lepkie miny i beczki gdziekolwiek wewnątrz|strefy wpływu twojego klanu, kosztem energii.", -- Construction_Mode ["This allows you to create and place mines,|sticky mines and barrels anywhere within your|clan's area of influence at the cost of energy.|Up/down: Choose object type|Left/right: Choose timer (for mines)|Cursor: Place object"] = "To pozwala ci stworzyć i ustawić miny, samoprzylepne|miny i beczki gdziekolwiek wewnątrz strefy wpływu|twojego klanu, kosztem energii.|Góra/dół: Wybierz typ obiektu|Lewo/prawo: Wybierz czas (dla min)|Kursor: Ustaw obiekt", -- Construction_Mode ["This almost concludes our tutorial."] = "To prawie kończy nasz samouczek.", -- Basic_Training_-_Flying_Saucer --- ["This also increases the effectiveness of Medicine."] = "", -- Continental_supplies + ["This also increases the effectiveness of Medicine."] = "To również zwiększa efektywność Lekarstwa.", -- Continental_supplies ["This game wasn’t really exciting."] = "Ta gra nie była naprawdę ekscytująca.", -- Space_Invasion ["This Hog Solo is so naive! When he returns I'll shoot him and keep that device for myself!"] = "Ten Hog Solo jest taki naiwny! Kiedy wróci, zastrzelę go i zatrzymam urządzenie dla siebie!", -- A_Space_Adventure:fruit02 ["This is a new personal best, congratulations!"] = "To nowy osobisty rekord, gratulacje!", -- A_Space_Adventure:death02, A_Space_Adventure:desert02, A_Space_Adventure:fruit03 @@ -2384,7 +2384,7 @@ ["This island is the only place left on Earth with grass on it!"] = "Ta wyspa to jedyne pozostałe miejsce na Ziemi, w którym jest trawa!", -- A_Classic_Fairytale:enemy ["This is seems like a wealthy hedgehog, nice ..."] = "On wygląda jak bogaty jeż, nieźle...", -- A_Space_Adventure:desert01 ["This is the mission panel."] = "To jest panel misji.", -- Basic_Training_-_Movement --- ["This is the Olympic Stadium of Saucer Flying."] = "", -- A_Space_Adventure:ice02 + ["This is the Olympic Stadium of Saucer Flying."] = "To jest Stadion Olimpijski Latania Spodkiem.", -- A_Space_Adventure:ice02 ["This is the Olympic stadium of saucer flying."] = "To jest Stadion Olimpijski Latania Spodkiem.", -- A_Space_Adventure:ice02 ["This is typical!"] = "To typowe!", -- A_Classic_Fairytale:dragon ["This must be some kind of sorcery!"] = "To musi być jakaś magia!", -- A_Classic_Fairytale:shadow @@ -2397,17 +2397,17 @@ ["This was an awesome performance! But this challenge can be finished with even just one RC plane. Can you figure out how?"] = "To było niesamowite przedstawienie! Ale to wyzwanie może być ukończone tyko jednym samolocikiem. Potrafsz wykombinować jak?", -- User_Mission_-_RCPlane_Challenge ["This will be fun!"] = "To będzie zabawne!", -- A_Classic_Fairytale:enemy ["This will be useful when I need a new platform or if I want to rise."] = "To będzie żyteczne, kiedy będę potrzebował platformy albo chciał się wznieść.", -- portal --- ["This will certainly come in handy."] = "", -- User_Mission_-_Teamwork_2 + ["This will certainly come in handy."] = "To z pewnością się przyda.", -- User_Mission_-_Teamwork_2 ["This will certianly come in handy."] = "To zdecydowanie się przyda.", -- User_Mission_-_Teamwork_2 ["Thompson"] = "Tomson", ["Those aliens are destroying the island!"] = "Ci obcy niszczą naszą wyspę!", -- A_Classic_Fairytale:family ["Those were scheduled for disposal anyway."] = "Ci i tak mieli iść do śmieci.", -- A_Classic_Fairytale:dragon --- ["Throw a 1 second mine!"] = "", -- Continental_supplies + ["Throw a 1 second mine!"] = "Rzuć 1-sekundową minę!", -- Continental_supplies ["Throw a baseball at your foes|and send them flying!"] = "Rzuć piłkę baseballową w swoich wrogów|i spraw, że polecą.", -- Knockball ["Throw a grenade to destroy the target!"] = "Rzuć granatem, by zniszczyć cel!", -- Basic_Training_-_Grenade ["Throw some grenades to destroy the targets!"] = "Rzuć trochę granatów, by zniszczyć cele!", -- Basic_Training_-_Grenade ["Thug #%d"] = "Zbir #%d", -- A_Space_Adventure:death01 --- ["Tie-breaking round %d"] = "", -- Space_Invasion + ["Tie-breaking round %d"] = "Runda remisowa %d", -- Space_Invasion ["Timbers"] = "Drewna", ["Time: %.1fs"] = "Czas: %.1fs", -- Racer, TechRacer ["Time: %.3fs by %s"] = "Czas: %.3fs (%s)", -- TrophyRace @@ -2429,13 +2429,13 @@ ["Tip: The rope physics are different than in the real world, |use it to your advantage!"] = "Porada: Fizyka liny jest inna od tej w prawdziwym świecie.|Wykorzystaj to na swoją korzyść!", -- Basic_Training_-_Rope ["Tip: You can change your flying saucer|in mid-flight by hitting the [Attack] key twice."] = "Porada: Możesz zmienić swój latający talerz|podczas lotu, wciskając dwukrotnie przycisk [Atak].", -- Basic_Training_-_Flying_Saucer ["Tiyuri"] = "Tiyuri", - ["Toad"] = "Ropucha", + ["Toad"] = "Toad", ["To begin, walk to the crate to the right."] = "By zacząć, idź do skrzyni po prawej.", -- Basic_Training_-_Movement ["To begin with the training, hit the attack key!"] = "By zacząć trening, wciśnij przycisk ataku!", -- Basic_Training_-_Movement ["To begin with the training, select the bazooka from the ammo menu!"] = "By zacząć trening, wybierz bazookę z menu amunicji!", -- Basic_Training_-_Bazooka ["To begin with the training, select the grenade from the ammo menu!"] = "By zacząć trening, wybierz granat z menu amunicji!", -- Basic_Training_-_Grenade ["To finish hedgehog selection, just do anything|with him, like walking."] = "By skończyć wybierać jeża, zrób z nim cokolwiek,|np. rusz się", -- Basic_Training_-_Movement --- ["To get over the next obstacles, keep some distance from the wall before you back jump."] = "", -- Basic_Training_-_Movement + ["To get over the next obstacles, keep some distance from the wall before you back jump."] = "By przekroczyć następną przeszkodę, utrzymaj trochę dystansu od ściany zanim skoczysz w tył.", -- Basic_Training_-_Movement ["To get over the water, you have to do multiple|rope shots and swings."] = "By przejść przez wodę, musisz wykonać wielokrotne|strzały i zamachy liną.", -- Basic_Training_-_Rope ["Toggle Editing Weapons and Tools: [Precise]+[2]"] = "Przełącz edytujące bronie i narzędzia: [Precyzja]+[2]", -- HedgeEditor ["Toggle Gear Information: [Precise]+[3]"] = "Przełącz informacje o rzeczach: [Precyzja]+[3]", -- HedgeEditor @@ -2449,7 +2449,7 @@ ["Too slow! Try again ..."] = "Za wolno! Spróbuj ponownie...", -- A_Space_Adventure:moon02 ["Top-class elite pilot"] = "Elitarny pilot najwyższej klasy", -- User_Mission_-_RCPlane_Challenge ["To place a girder, select it, use [Left] and [Right] to select angle and length, place with [Left Click]"] = "By postawić belkę wybierz ją, użyj [Lewo] i [Prawo], by wybrać kąt i długość, ustaw używając [Lewy Klik]", -- A_Classic_Fairytale:shadow --- ["To reach higher ground, walk to a ledge, look to the left, then do a back jump."] = "", -- Basic_Training_-_Movement + ["To reach higher ground, walk to a ledge, look to the left, then do a back jump."] = "By dostać się na wyższy poziom, wejdź na krawędz, spójrz w lewo i wykonaj skok w tył.", -- Basic_Training_-_Movement ["Torn Muscle"] = "Rozerwany Mięsień", -- A_Classic_Fairytale:journey ["To the caves..."] = "Do jaskiń...", -- A_Classic_Fairytale:united ["Touch all waypoints as fast as you can!"] = "Dotknij wszystkich punktów kontrolnych najszybciej jak potrafisz!", -- Racer @@ -2473,7 +2473,7 @@ ["Trapper"] = "Traper", -- HedgeEditor ["Travel carefully as your fuel is limited"] = "Lataj ostrożnie, gdyż twoje paliwo jest ograniczone", -- A_Space_Adventure:cosmos ["Travel to all the neighbor planets and collect all the pieces"] = "Poleć na wszystkie sąsiednie planety i zbierz wszystkie części", -- A_Space_Adventure:cosmos --- ["Treasure: Massive weapon bonus in first turn."] = "", -- Continental_supplies + ["Treasure: Massive weapon bonus in first turn."] = "Skarb: Masywny bonus broni w pierwszej turze.", -- Continental_supplies ["Tribe"] = "Plemię", -- A_Classic_Fairytale:backstab ["TrophyRace"] = "TrophyRace", ["Trunks"] = "Trunks", @@ -2534,13 +2534,13 @@ ["Unlucky Sods"] = "Pechowi Kolesie", -- User_Mission_-_Rope_Knock_Challenge ["Unstoppable!"] = "Nie do zatrzymania!", ["Unsuspecting Louts"] = "Niepodejrzewające Chamy", -- User_Mission_-_Rope_Knock_Challenge --- ["Up/Down: Adjust dust storm damage"] = "", -- Continental_supplies --- ["Up/Down: Browse through continents"] = "", -- Continental_supplies + ["Up/Down: Adjust dust storm damage"] = "Góra/Dół: Dostosuj obrażenia burzy pyłowej", -- Continental_supplies + ["Up/Down: Browse through continents"] = "Góra/Dół: Przeglądaj kontynenty", -- Continental_supplies ["Up/Down: Change placement mode"] = "Góra/Dół: Zmień tryb stawiania", -- HedgeEditor ["Up/down: Choose crate type"] = "Góra/Dół: Zmień typ skrzyni", -- Construction_Mode ["Up/down: Choose object type|1-5/Switch/Left/Right: Choose mine timer|Cursor: Place object"] = "Góra/Dół: Wybierz typ obiektu|1-5/Zmiana/Lewo/Prawo: Wybierz czas miny|Kursor: Ustaw obiekt", -- Construction_Mode ["Upper-class elite pilot"] = "Elitarny pilot wyższej klasy", -- User_Mission_-_RCPlane_Challenge --- ["Upside-Down World"] = "", -- Continental_supplies + ["Upside-Down World"] = "Świat do góry nogami", -- Continental_supplies ["Use it wisely!"] = "Użyj tego mądrze!", -- A_Classic_Fairytale:dragon ["Use it with precaution!"] = "Użyj tego z ostrożnośćią!", -- A_Classic_Fairytale:first_blood ["User Challenge"] = "Wyzwanie użytkownika", @@ -2634,7 +2634,7 @@ ["Weapons: Each team starts with %d weapon points"] = "Bronie: ażda drużyna zaczyna z %d punktami broni", -- Battalion ["Weapons: Hogs will get 1 out of 3 weapons randomly each turn"] = "Bronie: Jeże dostaną 1 z 3 broni losowo w każdej turze", -- Battalion ["Weapons: Nearly every hog variant gets 1 kamikaze"] = "Bronie: Prawie każdy wariant jeża dostaje 1 kamikaze", -- Battalion --- ["Weapon specials: Some weapons have special modes (see weapon description)."] = "", -- Continental_supplies + ["Weapon specials: Some weapons have special modes (see weapon description)."] = "Speciały broni: Niektóre bronie mają specjalne tryby (zobacz opis broni).", -- Continental_supplies ["Weapons Reset"] = "Reset broni", ["Weapons reset: The weapons are reset after each turn."] = "Reset broni: Bronie resetują się po każdej turze.", -- WxW ["We are indeed."] = "Jesteśmy zaiste.", -- A_Classic_Fairytale:backstab @@ -2776,7 +2776,7 @@ ["Yay, we won!"] = "Jej, wygraliśmy!", -- A_Classic_Fairytale:enemy ["Y Chwiliad"] = "Y Człiliad", -- A_Classic_Fairytale:dragon ["Yeah...I think it's a 'he', lol."] = "Racja... zdaje się, że to \"on\", lol.", -- A_Classic_Fairytale:shadow --- ["Yeah, sure! I died. Hilarious!"] = "", -- A_Classic_Fairytale:backstab + ["Yeah, sure! I died. Hilarious!"] = "Tak, racja! Umarłem. Przezabawne!", -- A_Classic_Fairytale:backstab ["Yeah, sure! I died. Hillarious!"] = "Racja, pewnie! Umarłem. Komiczne.", -- A_Classic_Fairytale:backstab ["Yeah, take that!"] = "Tak, przyjmij to!", -- A_Classic_Fairytale:dragon ["Yeah? Watcha gonna do? Cry?"] = "Tak? Co zamierzasz zrobić? Płakać?", -- A_Classic_Fairytale:journey @@ -2811,9 +2811,9 @@ ["You can choose another planet by replaying this mission."] = "Możesz wyrać inną planetę, grając w tę misję jeszcze raz.", -- A_Space_Adventure:cosmos ["You can dive with your flying saucer!"] = "Możesz nurkować swoim spodkiem!", -- Basic_Training_-_Flying_Saucer ["You can even change your aiming direction in mid-flight if you first hold [Precice] and then press [Up] or [Down]."] = "Możesz zmieniać kierunek celowania w locie, jeśli najpierw przytrzymasz [Precyzja], a potem wciśniesz [Góra] lub [Dół].", -- Basic_Training_-_Flying_Saucer --- ["You can even change your aiming direction in mid-flight if you first hold [Precise] and then press [Up] or [Down]."] = "", -- Basic_Training_-_Flying_Saucer + ["You can even change your aiming direction in mid-flight if you first hold [Precise] and then press [Up] or [Down]."] = "Możesz nawet zmienić swój kierunek celowania w czasie lotu, jeśli wpierw przytrzymasz [Precyzję] i wciśniesz [Góra] lub [Dół]", -- Basic_Training_-_Flying_Saucer ["You can further customize the race by changing the scheme script paramater."] = "Możesz jeszcze dostosować swój wyścig, zmieniając parametr skryptu w schemacie.", -- TechRacer --- ["You can further customize the race by changing the scheme script parameter."] = "", -- TechRacer + ["You can further customize the race by changing the scheme script parameter."] = "Możesz bardziej dostosować wyścig, zmienając parametr skryptu w schemacie.", -- TechRacer ["You can only use the sniper rifle or the watermelon bomb."] = "Możesz użyć tylko karabinu snajperskiego lub bomby arbuzowej.", -- A_Space_Adventure:fruit03 ["You can practice moving around and using utilities in this mission.|However, it will never end!"] = "W tej misji możesz poćwiczyć chodzenie i używanie narzędzi.|Jednakże, ona nigdy się nie skończy!", -- A_Classic_Fairytale:epil ["You can set the bounciness of grenades (and grenade-like weapons)."] = "Możesz ustawić odbijalnoś granatów (i granato-podobnych broni).", -- Basic_Training_-_Grenade diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/pl.txt --- a/share/hedgewars/Data/Locale/pl.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/pl.txt Thu Nov 01 02:55:22 2018 +0300 @@ -60,7 +60,7 @@ 00:56=Tasak 00:57=Guma 00:58=Mina powietrzna - +00:59=Creeper 00:60=Minigun 01:00=Wczytywanie... @@ -104,6 +104,13 @@ 01:38=%1 powraca. 01:39=%1 automatycznie pomija turę. 01:40=%1 klatek na sekundę +01:41=Parsowanie Lua: WYŁĄCZONE +01:42=Parsowanie Lua: WŁĄCZONE +01:43=Parsowanie Lua jest niedozwolone w grze online! +01:44=%1× +01:45=%1: %2 +01:46=[Klan] %1: %2 +01:47=[%1]: %2 ; Zdarzenia ; Jeż (%1) umiera @@ -605,7 +612,7 @@ 03:56=Nie przytnij sobie igieł! 03:57=Narzędzie 03:58=Latająca bomba zbliżeniowa - +03:59=Niedokończona broń 03:60=Ostateczna broń palna ; Weapon Descriptions (use | as line breaks) @@ -640,7 +647,7 @@ 04:28=Krótko po wystrzeleniu, rakieta zacznie wiercić tunel w ziemi|i eksploduje gdy zapalnik zostanie uruchomiony lub jeśli|pojawi się po drugiej stronie terenu.|Atak: Przytrzymaj by strzelić z większą siłą 04:29=Tego nie powinny używać dzieci!|Pistolet na kulki wystrzeliwuje tony małych|kolorowych kulek wypełnionych materiałem|wybuchowym.|Atak: Strzel kulkami|Góra/Dół: Kontynuuj celowanie 04:30=Wezwij samolot, żeby zrzucić dużą ilość|napalmu. Dzięki dobremu celowi ten atak|może zlikwidować dużą część mapy, w tym|znajdujące się tam nieszczęsne jeże.|Lewo/Prawo: Określ kierunek ataku|Kursor: Wybierz obszar -04:31=Zaatakuj odległych przeciwników, bądź zbierz|skrzynki! Nie zapomnij o zrzuceniu bomb!|Góra/Dół: Steruj samolotem|Atak: Zrzuć bombę (3x) |Długi skok: Niech Walkirie wkroczą na pole bitwy! +04:31=Zaatakuj odległych przeciwników, bądź zbierz|skrzynki! Nie zapomnij o zrzuceniu bomb!|Lewo/Prawo: Steruj samolotem|Atak: Zrzuć bombę (3x) |Długi skok: Niech Walkirie wkroczą na pole bitwy! 04:32=Niska grawitacja jest skuteczniejsza od dowolnej|diety! Skacz wyżej i na większy dystans lub pozwól|przeciwnikom lecieć jeszcze dalej.|Atak: Aktywuj 04:33=Czasami potrzebujesz dodatkowego kopa|żeby zadawać większe obrażenia. Włącze-|nie spowoduje zwiększenie zadawanych|obrażeń o 50% do końca tury.|Atak: Aktywuj 04:34=Czyni Cię nieważliwym na obrażenia do za-|kończenia tury. Ale nie szalej, nadal możesz|utonąć.|Atak: Aktywuj @@ -668,7 +675,7 @@ 04:56=Rzuć w przeciwnika dwoma tasakami i zablokuj mu |drogę lub użyj ich do wspinaczki! Jednak uważaj! |Te tasaki są naprawdę ostre!|Atak: Przytrzymaj by rzucić z większą siłą (dwukrotnie) 04:57=Tworzy elastyczne paski wykonane z gumy,|od których jeże i inne rzeczy odbijają się|bez obrażeń przy upadku.|Lewo/Prawo: Zmiana orientacji paska|Kursor: Umieść pasek w aktualnej pozycji 04:58=Ta mina będzie się swobodnie unisić w powietrzu i|podążać za jeżami, które się do niej zblizą.|Jej eksplozja jest jednakże mniejsza niż miny przeciwpiechotnej.|Atak: Przytrzymaj by rzucić z większą siłą - +04:59=Ta broń jest niedokończona i eksperymentalna.|Używaj na własne ryzyko! 04:60=Wywołaj deszcz pocisków na swoich wrogów!|A oni myśleli, że są bezpieczni za potrójną|warstwą belek.|Atak: Strzel z pełną mocą|Góra/Dół: Kontynuuj celowanie ; Game goal strings @@ -695,3 +702,33 @@ 05:20=Każdy z jeży ma oddzielne uzbrojenie 05:21=Zespół: Zespoły w klanie wykonują tury po kolei|Wspólny czas: Czas jest wspólny dla każdej drużyny w zespole 05:22=Silny wiatr: Wiatr wpływa prawie na wszystko + + +; Chat command help +06:00=Lista podstawowych komend czatu klienta: +06:01=/togglechat: Przełącz wyświetlanie czatu +06:02=/clan : Wyślij wiadomość tylko do członków klanu +06:03=/me : Akcja czatu, np. “/me je pizzę” staje się “* Gracz je pizzę” +06:04=/pause: Przełącz pauzę +06:05=/pause: Przełącz auto-pomijanie +06:06=/fullscreen: Przełącz pełny ekran +06:07=/quit: Wyjdź z Hedgewars +06:08=/help: Wyświetl listę podstawowych komend czatu klienta +06:09=/help taunts: Wyświetl listę kpiących komend czatu +06:10=/history: Przełącz wyświetlanie długiej historii czatu +06:11=/lua: Przełącz parsowanie Lua (dla twórców) +06:12=Lista kpiacych komend czatu: +06:13="tekst": Umieść tekst w dymku rozmowy +06:14='tekst': Umieść tekst w dymku myślenia +06:15=-tekst-: Umieść tekst w dymku krzyczenia +06:16=Dla powyższych komend, podaj numer na początku tekstu, by wybrać jeża. +06:17=/hsa : Umieść tekst w dymku rozmowy w następnym ataku +06:18=/hta : Umieść tekst w dymku myślenia w następnym ataku +06:19=/hya : Umieść tekst w dymku krzyczenia w następnym ataku +06:20=/hurrah: Spraw, by jeż się cieszył +06:21=/ilovelotsoflemonade: Spraw, by jeż sikał +06:22=/juggle: Spraw, by jeż żonglował +06:23=/rollup: Spraw, by jeż przewrócił oczami +06:24=/shrug: Spraw, by jeż wzruszył ramionami +06:25=/wave: Spraw, by jeż pomachał dłonią +06:26=Nieznana komenda lub niepoprawne parametry. Powiedz w czacie "/help" dla listy komend. diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/pt_PT.lua --- a/share/hedgewars/Data/Locale/pt_PT.lua Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/pt_PT.lua Thu Nov 01 02:55:22 2018 +0300 @@ -1256,7 +1256,7 @@ ["Keep it up!"] = "Continua assim!", -- ["Ken"] = "", -- -- ["Kenshi"] = "", -- - ["Kerguelen"] = "", -- Continental_supplies +-- ["Kerguelen"] = "", -- Continental_supplies -- ["key."] = "", -- Continental_supplies -- ["Kill all enemy hedgehogs in a single turn."] = "", -- Big_Armory -- ["Kill him or skip your turn."] = "", -- A_Classic_Fairytale:backstab @@ -1416,7 +1416,7 @@ -- ["Modifiers: Unlimited attacks, shared clan ammo"] = "", -- Battalion -- ["Modify Sprite under Cursor: [Left Click]"] = "", -- HedgeEditor -- ["Molly"] = "", -- - ["Molotov"] = "", -- Continental_supplies +-- ["Molotov"] = "", -- Continental_supplies -- ["Monster kill!"] = "", -- Mutant -- ["Monsters"] = "", -- -- ["Mooney"] = "", -- diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/tips_pl.xml --- a/share/hedgewars/Data/Locale/tips_pl.xml Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/tips_pl.xml Thu Nov 01 02:55:22 2018 +0300 @@ -6,12 +6,12 @@ By grać ze swoim przyjacielem w tej samej drużynie, po prostu wybierzcie taki sam kolor obydwu zespołów. Każdy z was będzie sterować swoimi własnymi jeżami, ale wygracie bądź przegracie jako jedna drużyna. Niektóre z broni zadają mało punktów obrażeń, jednak użyte w odpowiednim momencie mogą pokazać pazur. Na przykład, spróbuj użyć pistoletu, by strącić swoich przeciwników do wody. Jeśli nie jesteś pewien, co zrobić w danej turze i nie chcesz tracić amunicji, możesz pominąć turę. Nie rób tak jednak zbyt często, gdyż nagła śmierć jest nieuchronna! - Znudzony domyślnymi ustawieniami gry? Spróbuj zagrać w którąś z misji. - oferują one zmienione zasady gry, w zależności od tej którą wybrałeś. + Znudzony domyślnymi ustawieniami gry? Spróbuj zagrać w którąś z misji - oferują one zmienione zasady gry, w zależności od tej którą wybrałeś. Gra zawsze będzie zapisywała ostatnią rozgrywkę jako demo. Wybierz "Grę Lokalną" i kliknij przycisk "Dema", który znajduje się w prawym dolnym rogu ekranu, by je odtworzyć i zarządzać nimi. Hedgewars jest darmową grą o otwartym kodzie, którą tworzymy w naszym wolnym czasie. Jeśli masz jakiś problem, zapytaj na naszym forum lub odwiedź nasz kanał IRC! Hedgewars jest darmową grą o otwartym kodzie, którą tworzymy w naszym wolnym czasie. Jeśli ją lubisz, wspomóż nas małą wpłatą lub wnieś w nią trochę własnej pracy! Hedgewars jest darmową grą o otwartym kodzie, którą tworzymy w naszym wolnym czasie. Jeśli tylko chcesz, rozdaj ją swojej rodzinie i kolegom! - Hedgewars jest darmową grą o otwartym kodzie, którą tworzymy w naszym wolnym czasie, tylko dla zabawy! Poznaj twórcó na #hedgewars! + Hedgewars jest darmową grą o otwartym kodzie, którą tworzymy w naszym wolnym czasie, tylko dla zabawy! Poznaj twórców na #hedgewars! Od czasu do czasu będą organizowane mistrzostwa. Będą one ogłaszane z wyprzedzeniem na http://www.hedgewars.org/. Hedgewars jest dostępne w wielu językach. Jeśli brakuje tłumaczenia w twoim języku bądź jest ono niekompletne, nie bój się z nami skontaktować! Hedgewars może być uruchomione na różnych systemach operacyjnych, takich jak Microsoft Windows, Mac OS X, oraz GNU/Linux. diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/tr.lua --- a/share/hedgewars/Data/Locale/tr.lua Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/tr.lua Thu Nov 01 02:55:22 2018 +0300 @@ -1718,7 +1718,6 @@ -- ["Protect the King: When the king dies, so does the team"] = "", -- Battalion -- ["Protect yourselves!|Grenade hint: set the timer with [1-5], aim with [Up]/[Down] and hold [Space] to set power"] = "", -- A_Classic_Fairytale:shadow -- ["Protect yourselves!|Grenade hint: Set the timer with [1-5], aim with [Up]/[Down] and hold [Space] to set power"] = "", -- A_Classic_Fairytale:shadow - ["PUNKTESTAND"] = "", -- ["Purple"] = "", -- -- ["Pyro"] = "", -- HedgeEditor, The_Specialists -- ["Pyromancer"] = "", -- Battalion @@ -2016,7 +2015,6 @@ -- ["Spectator"] = "", -- -- ["Speed Roping"] = "", -- Basic_Training_-_Rope -- ["Speed Shoppa"] = "", -- SpeedShoppa - ["Spielmodifikatoren: "] = "", -- ["Spike"] = "", -- A_Space_Adventure:desert01 -- ["Spikes"] = "", -- -- ["Spiky Cheese"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Locale/uk.lua --- a/share/hedgewars/Data/Locale/uk.lua Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Locale/uk.lua Thu Nov 01 02:55:22 2018 +0300 @@ -3017,6 +3017,5 @@ ["'Zooka Team"] = "Команда 'Zooka", -- ["Zook"] = "", -- Target_Practice_-_Bazooka_easy, Target_Practice_-_Bazooka_hard -- ["Zork"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen - ["Ей! Так не чесно!"] = "", -- A_Classic_Fairytale:journey ["!!!"] = "Я!", } diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt Thu Nov 01 02:55:22 2018 +0300 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -16,6 +17,7 @@ Gonnagetyou.ogg Grenade.ogg Hello.ogg +Hmm.ogg Hurry.ogg Illgetyou.ogg Incoming.ogg @@ -23,6 +25,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg @@ -30,10 +33,12 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg Reinforcements.ogg +Revenge.ogg Runaway.ogg Sameteam.ogg Solong.ogg diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt Thu Nov 01 02:55:22 2018 +0300 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -16,6 +17,7 @@ Gonnagetyou.ogg Grenade.ogg Hello.ogg +Hmm.ogg Hurry.ogg Illgetyou.ogg Incoming.ogg @@ -23,6 +25,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg @@ -30,10 +33,14 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg Reinforcements.ogg +# FIXME: Revenge.ogg is "I'll get you back" but this taunt is meant for +# successful reveng, not the announcement thereof. +#Revenge.ogg Runaway.ogg Sameteam.ogg Solong.ogg diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt Thu Nov 01 02:55:22 2018 +0300 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -16,6 +17,7 @@ Gonnagetyou.ogg Grenade.ogg Hello.ogg +Hmm.ogg Hurry.ogg Illgetyou.ogg Incoming.ogg @@ -23,6 +25,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg @@ -30,10 +33,12 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg Reinforcements.ogg +Revenge.ogg Runaway.ogg Sameteam.ogg Solong.ogg diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt Thu Nov 01 02:55:22 2018 +0300 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -16,6 +17,7 @@ Gonnagetyou.ogg Grenade.ogg Hello.ogg +Hmm.ogg Hurry.ogg Illgetyou.ogg Incoming.ogg @@ -23,6 +25,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg @@ -30,10 +33,12 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg Reinforcements.ogg +Revenge.ogg Runaway.ogg Sameteam.ogg Solong.ogg diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt Thu Nov 01 02:55:22 2018 +0300 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -16,6 +17,7 @@ Gonnagetyou.ogg Grenade.ogg Hello.ogg +Hmm.ogg Hurry.ogg Illgetyou.ogg Incoming.ogg @@ -23,6 +25,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg @@ -30,10 +33,12 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg Reinforcements.ogg +Revenge.ogg Runaway.ogg Sameteam.ogg Solong.ogg diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt Thu Nov 01 02:55:22 2018 +0300 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -16,6 +17,7 @@ Gonnagetyou.ogg Grenade.ogg Hello.ogg +Hmm.ogg Hurry.ogg Illgetyou.ogg Incoming.ogg @@ -23,6 +25,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg @@ -30,10 +33,12 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg Reinforcements.ogg +Revenge.ogg Runaway.ogg Sameteam.ogg Solong.ogg diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt Thu Nov 01 02:55:22 2018 +0300 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -16,6 +17,7 @@ Gonnagetyou.ogg Grenade.ogg Hello.ogg +Hmm.ogg Hurry.ogg Illgetyou.ogg Incoming.ogg @@ -23,6 +25,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg @@ -30,10 +33,12 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg Reinforcements.ogg +Revenge.ogg Runaway.ogg Sameteam.ogg Solong.ogg diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt Thu Nov 01 02:55:22 2018 +0300 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -16,6 +17,7 @@ Gonnagetyou.ogg Grenade.ogg Hello.ogg +Hmm.ogg Hurry.ogg Illgetyou.ogg Incoming.ogg @@ -23,6 +25,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg @@ -30,10 +33,12 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg Reinforcements.ogg +Revenge.ogg Runaway.ogg Sameteam.ogg Solong.ogg diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt Thu Nov 01 02:55:22 2018 +0300 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -16,6 +17,7 @@ Gonnagetyou.ogg Grenade.ogg Hello.ogg +Hmm.ogg Hurry.ogg Illgetyou.ogg Incoming.ogg @@ -23,6 +25,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg @@ -30,10 +33,12 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg Reinforcements.ogg +Revenge.ogg Runaway.ogg Sameteam.ogg Solong.ogg diff -r 8a0d69c16cad -r 9c817b2eedae share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt Wed Oct 31 23:36:05 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt Thu Nov 01 02:55:22 2018 +0300 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -16,6 +17,7 @@ Gonnagetyou.ogg Grenade.ogg Hello.ogg +Hmm.ogg Hurry.ogg Illgetyou.ogg Incoming.ogg @@ -23,6 +25,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg @@ -30,10 +33,12 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg Reinforcements.ogg +Revenge.ogg Runaway.ogg Sameteam.ogg Solong.ogg