forked from github/server
GIB 0 n SCHIFFE
Keine Boote erlauben Übergabe an eigene Besatzung.
This commit is contained in:
parent
78e44e0fe3
commit
1d405e2ef8
|
@ -2780,6 +2780,12 @@ msgstr "\"$unit($unit) in $region($region): '$order($command)' - Die Einheit ist
|
||||||
msgid "error323"
|
msgid "error323"
|
||||||
msgstr "\"$unit($unit) in $region($region): '$order($command)' - Das Schiff ist verzaubert.\""
|
msgstr "\"$unit($unit) in $region($region): '$order($command)' - Das Schiff ist verzaubert.\""
|
||||||
|
|
||||||
|
msgid "error327"
|
||||||
|
msgstr "\"$unit($unit) in $region($region): '$order($command)' - So viele Schiffe kann die Einheit nicht übergeben.\""
|
||||||
|
|
||||||
|
msgid "error326"
|
||||||
|
msgstr "\"$unit($unit) in $region($region): '$order($command)' - Diese Schiffe können keinen Konvoi bilden.\""
|
||||||
|
|
||||||
msgid "dissolve_units_2"
|
msgid "dissolve_units_2"
|
||||||
msgstr "\"$unit($unit) in $region($region): $int($number) $race($race,$number) $if($eq($number,1),\"wurde zum Baum\", \"wurden zu Bäumen\").\""
|
msgstr "\"$unit($unit) in $region($region): $int($number) $race($race,$number) $if($eq($number,1),\"wurde zum Baum\", \"wurden zu Bäumen\").\""
|
||||||
|
|
||||||
|
|
|
@ -2771,6 +2771,9 @@ msgstr "\"$unit($unit) in $region($region): '$order($command)' - The unit cannot
|
||||||
msgid "error325"
|
msgid "error325"
|
||||||
msgstr "\"$unit($unit) in $region($region): '$order($command)' - Spells can only be cast on a single ship.\""
|
msgstr "\"$unit($unit) in $region($region): '$order($command)' - Spells can only be cast on a single ship.\""
|
||||||
|
|
||||||
|
msgid "error326"
|
||||||
|
msgstr "\"$unit($unit) in $region($region): '$order($command)' - These ships cannot form a convoy.\""
|
||||||
|
|
||||||
msgid "error324"
|
msgid "error324"
|
||||||
msgstr "\"$unit($unit) in $region($region): '$order($command)' - The unit is not one of ours.\""
|
msgstr "\"$unit($unit) in $region($region): '$order($command)' - The unit is not one of ours.\""
|
||||||
|
|
||||||
|
|
|
@ -83,9 +83,9 @@ function test_ship_convoy_capacity()
|
||||||
local u = unit.create(f, r1, 1)
|
local u = unit.create(f, r1, 1)
|
||||||
|
|
||||||
u:add_order('NACH O')
|
u:add_order('NACH O')
|
||||||
u:set_skill('sailing', 2, true)
|
u:set_skill('sailing', 10, true)
|
||||||
u:add_item('jewel', 40)
|
u:add_item('jewel', 490)
|
||||||
u.ship = ship.create(r1, 'boat')
|
u.ship = ship.create(r1, 'longboat')
|
||||||
assert_equal(1, u.ship.number)
|
assert_equal(1, u.ship.number)
|
||||||
process_orders()
|
process_orders()
|
||||||
u:clear_orders()
|
u:clear_orders()
|
||||||
|
@ -99,19 +99,17 @@ function test_ship_convoy_capacity()
|
||||||
assert_equal(r2, u.region) -- too heavy
|
assert_equal(r2, u.region) -- too heavy
|
||||||
|
|
||||||
u:add_order('NACH W')
|
u:add_order('NACH W')
|
||||||
u:add_item('jewel', 39)
|
u:add_item('jewel', 489)
|
||||||
u.ship.number = 2
|
u.ship.number = 2
|
||||||
u.number = 2
|
u.number = 2
|
||||||
u:set_skill('sailing', 2, true)
|
u:set_skill('sailing', 10, true)
|
||||||
process_orders()
|
process_orders()
|
||||||
u:clear_orders()
|
u:clear_orders()
|
||||||
assert_equal(r1, u.region) -- double capacity
|
assert_equal(r1, u.region) -- double capacity
|
||||||
|
|
||||||
u:add_order('NACH O')
|
u:add_order('NACH O')
|
||||||
u.ship.number = 2
|
u.ship.number = 2
|
||||||
u.name = 'Bolgrim'
|
|
||||||
u:add_item('jewel', 1) -- too heavy again
|
u:add_item('jewel', 1) -- too heavy again
|
||||||
u:set_skill('sailing', 2, true)
|
|
||||||
process_orders()
|
process_orders()
|
||||||
u:clear_orders()
|
u:clear_orders()
|
||||||
assert_equal(r1, u.region)
|
assert_equal(r1, u.region)
|
||||||
|
@ -122,17 +120,17 @@ function test_ship_convoy_crew()
|
||||||
local r2 = region.create(2, 0, 'ocean')
|
local r2 = region.create(2, 0, 'ocean')
|
||||||
local f = faction.create("human")
|
local f = faction.create("human")
|
||||||
local u = unit.create(f, r1, 1)
|
local u = unit.create(f, r1, 1)
|
||||||
u.ship = ship.create(r1, 'boat')
|
u.ship = ship.create(r1, 'longboat')
|
||||||
u.ship.number = 2
|
u.ship.number = 2
|
||||||
|
|
||||||
u:set_skill('sailing', 4, true)
|
u.number = 2
|
||||||
|
u:set_skill('sailing', 5, true)
|
||||||
u:add_order('NACH O')
|
u:add_order('NACH O')
|
||||||
process_orders()
|
process_orders()
|
||||||
u:clear_orders()
|
u:clear_orders()
|
||||||
assert_equal(r1, u.region) -- not enough captains
|
assert_equal(r1, u.region) -- not enough captains
|
||||||
|
|
||||||
u.number = 2
|
u:set_skill('sailing', 10, true)
|
||||||
u:set_skill('sailing', 2, true)
|
|
||||||
u:add_order('NACH O')
|
u:add_order('NACH O')
|
||||||
process_orders()
|
process_orders()
|
||||||
u:clear_orders()
|
u:clear_orders()
|
||||||
|
@ -146,20 +144,20 @@ function test_ship_convoy_skill()
|
||||||
local f = faction.create("human")
|
local f = faction.create("human")
|
||||||
local u = unit.create(f, r1, 1)
|
local u = unit.create(f, r1, 1)
|
||||||
|
|
||||||
u:set_skill('sailing', 2, true)
|
u:set_skill('sailing', 10, true)
|
||||||
u.ship = ship.create(r1, 'boat')
|
u.ship = ship.create(r1, 'longboat')
|
||||||
assert_equal(1, u.ship.number)
|
assert_equal(1, u.ship.number)
|
||||||
u:add_order('NACH O')
|
u:add_order('NACH O')
|
||||||
process_orders()
|
process_orders()
|
||||||
assert_equal(r2, u.region)
|
assert_equal(r2, u.region)
|
||||||
|
|
||||||
u.ship.number = 2
|
u.ship.number = 2
|
||||||
u:set_skill('sailing', 4, true)
|
u:set_skill('sailing', 20, true)
|
||||||
process_orders()
|
process_orders()
|
||||||
assert_equal(r2, u.region) -- not enough captains
|
assert_equal(r2, u.region) -- not enough captains
|
||||||
|
|
||||||
u.number = 2
|
u.number = 2
|
||||||
u:set_skill('sailing', 2, true)
|
u:set_skill('sailing', 10, true)
|
||||||
process_orders()
|
process_orders()
|
||||||
assert_equal(r3, u.region)
|
assert_equal(r3, u.region)
|
||||||
end
|
end
|
||||||
|
@ -169,7 +167,7 @@ function test_give_ship()
|
||||||
local f = faction.create("human")
|
local f = faction.create("human")
|
||||||
local u1 = unit.create(f, r, 1)
|
local u1 = unit.create(f, r, 1)
|
||||||
local u2 = unit.create(f, r, 1)
|
local u2 = unit.create(f, r, 1)
|
||||||
u1.ship = ship.create(r, 'boat')
|
u1.ship = ship.create(r, 'longboat')
|
||||||
u1.ship.number = 2
|
u1.ship.number = 2
|
||||||
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
||||||
process_orders()
|
process_orders()
|
||||||
|
@ -177,15 +175,84 @@ function test_give_ship()
|
||||||
assert_equal(1, u2.ship.number)
|
assert_equal(1, u2.ship.number)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function test_give_ship_new_unit()
|
||||||
|
local r = region.create(1, 0, 'ocean')
|
||||||
|
local f = faction.create("human")
|
||||||
|
local u1 = unit.create(f, r, 1)
|
||||||
|
local u2 = unit.create(f, r, 1)
|
||||||
|
u1.ship = ship.create(r, 'longboat')
|
||||||
|
u1.ship.number = 2
|
||||||
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
||||||
|
process_orders()
|
||||||
|
assert_equal(1, u1.ship.number)
|
||||||
|
assert_equal(1, u2.ship.number)
|
||||||
|
end
|
||||||
|
|
||||||
|
function test_give_ship_same_ship()
|
||||||
|
local r = region.create(1, 0, 'ocean')
|
||||||
|
local f = faction.create("human")
|
||||||
|
local u1 = unit.create(f, r, 1)
|
||||||
|
local u2 = unit.create(f, r, 1)
|
||||||
|
u1.ship = ship.create(r, 'longboat')
|
||||||
|
u2.ship = u1.ship
|
||||||
|
u1.ship.number = 2
|
||||||
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
||||||
|
process_orders()
|
||||||
|
assert_equal(1, u1.ship.number)
|
||||||
|
assert_equal(1, u2.ship.number)
|
||||||
|
assert_not_equal(u1.ship, u2.ship)
|
||||||
|
end
|
||||||
|
|
||||||
|
function test_give_ship_dont_give_all()
|
||||||
|
local r = region.create(1, 0, 'ocean')
|
||||||
|
local f = faction.create("human")
|
||||||
|
local u1 = unit.create(f, r, 1)
|
||||||
|
u1.ship = ship.create(r, 'longboat')
|
||||||
|
u1.ship.number = 2
|
||||||
|
u1:add_order("GIB 0 2 SCHIFF")
|
||||||
|
process_orders()
|
||||||
|
assert_equal(2, u1.ship.number)
|
||||||
|
end
|
||||||
|
|
||||||
|
function test_give_ship_no_boat()
|
||||||
|
local r = region.create(1, 0, 'ocean')
|
||||||
|
local f = faction.create("human")
|
||||||
|
local u1 = unit.create(f, r, 1)
|
||||||
|
local u2 = unit.create(f, r, 1)
|
||||||
|
u1.ship = ship.create(r, 'boat')
|
||||||
|
u1.ship.number = 1
|
||||||
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
||||||
|
process_orders()
|
||||||
|
assert_equal(1, u1.ship.number)
|
||||||
|
assert_equal(nil, u2.ship)
|
||||||
|
end
|
||||||
|
|
||||||
|
function test_give_ship_away()
|
||||||
|
local r = region.create(1, 0, 'ocean')
|
||||||
|
local f = faction.create("human")
|
||||||
|
local u1 = unit.create(f, r, 1)
|
||||||
|
u1.ship = ship.create(r, 'longboat')
|
||||||
|
u1.ship.number = 2
|
||||||
|
u1:add_order("GIB 0 1 SCHIFF")
|
||||||
|
process_orders()
|
||||||
|
assert_equal(1, u1.ship.number)
|
||||||
|
local count = 0
|
||||||
|
for sh in r.ships do
|
||||||
|
assert_equal(1, sh.number)
|
||||||
|
count = count + 1
|
||||||
|
end
|
||||||
|
assert_equal(2, count)
|
||||||
|
end
|
||||||
|
|
||||||
function test_give_ship_only_to_captain()
|
function test_give_ship_only_to_captain()
|
||||||
local r = region.create(1, 0, 'ocean')
|
local r = region.create(1, 0, 'ocean')
|
||||||
local f = faction.create("human")
|
local f = faction.create("human")
|
||||||
local u1 = unit.create(f, r, 1)
|
local u1 = unit.create(f, r, 1)
|
||||||
local u2 = unit.create(f, r, 1)
|
local u2 = unit.create(f, r, 1)
|
||||||
local u3 = unit.create(f, r, 1)
|
local u3 = unit.create(f, r, 1)
|
||||||
u1.ship = ship.create(r, 'boat')
|
u1.ship = ship.create(r, 'longboat')
|
||||||
u1.ship.number = 2
|
u1.ship.number = 2
|
||||||
u2.ship = ship.create(r, 'boat')
|
u2.ship = ship.create(r, 'longboat')
|
||||||
u3.ship = u2.ship
|
u3.ship = u2.ship
|
||||||
u1:add_order("GIB " .. itoa36(u3.id) .. " 1 SCHIFF")
|
u1:add_order("GIB " .. itoa36(u3.id) .. " 1 SCHIFF")
|
||||||
process_orders()
|
process_orders()
|
||||||
|
@ -198,10 +265,10 @@ function test_give_ship_compatible_coasts()
|
||||||
local f = faction.create("human")
|
local f = faction.create("human")
|
||||||
local u1 = unit.create(f, r, 1)
|
local u1 = unit.create(f, r, 1)
|
||||||
local u2 = unit.create(f, r, 1)
|
local u2 = unit.create(f, r, 1)
|
||||||
u1.ship = ship.create(r, 'boat')
|
u1.ship = ship.create(r, 'longboat')
|
||||||
u1.ship.number = 4
|
u1.ship.number = 4
|
||||||
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
||||||
u2.ship = ship.create(r, 'boat')
|
u2.ship = ship.create(r, 'longboat')
|
||||||
|
|
||||||
-- cannot give a ship with different coast:
|
-- cannot give a ship with different coast:
|
||||||
u1.ship.coast = 1
|
u1.ship.coast = 1
|
||||||
|
@ -242,8 +309,8 @@ function test_give_ship_only_from_captain()
|
||||||
local u1 = unit.create(f, r, 1)
|
local u1 = unit.create(f, r, 1)
|
||||||
local u2 = unit.create(f, r, 1)
|
local u2 = unit.create(f, r, 1)
|
||||||
local u3 = unit.create(f, r, 1)
|
local u3 = unit.create(f, r, 1)
|
||||||
u2.ship = ship.create(r, 'boat')
|
u2.ship = ship.create(r, 'longboat')
|
||||||
u1.ship = ship.create(r, 'boat')
|
u1.ship = ship.create(r, 'longboat')
|
||||||
u1.ship.number = 2
|
u1.ship.number = 2
|
||||||
u3.ship = u1.ship
|
u3.ship = u1.ship
|
||||||
u3:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
u3:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
||||||
|
@ -257,8 +324,8 @@ function test_give_ship_merge()
|
||||||
local f = faction.create("human")
|
local f = faction.create("human")
|
||||||
local u1 = unit.create(f, r, 1)
|
local u1 = unit.create(f, r, 1)
|
||||||
local u2 = unit.create(f, r, 1)
|
local u2 = unit.create(f, r, 1)
|
||||||
u2.ship = ship.create(r, 'boat')
|
u2.ship = ship.create(r, 'longboat')
|
||||||
u1.ship = ship.create(r, 'boat')
|
u1.ship = ship.create(r, 'longboat')
|
||||||
u1.ship.number = 2
|
u1.ship.number = 2
|
||||||
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
||||||
process_orders()
|
process_orders()
|
||||||
|
@ -271,8 +338,8 @@ function test_give_ship_only_same()
|
||||||
local f = faction.create("human")
|
local f = faction.create("human")
|
||||||
local u1 = unit.create(f, r, 1)
|
local u1 = unit.create(f, r, 1)
|
||||||
local u2 = unit.create(f, r, 1)
|
local u2 = unit.create(f, r, 1)
|
||||||
u2.ship = ship.create(r, 'boat')
|
u2.ship = ship.create(r, 'longboat')
|
||||||
u1.ship = ship.create(r, 'longboat')
|
u1.ship = ship.create(r, 'caravel')
|
||||||
u1.ship.number = 2
|
u1.ship.number = 2
|
||||||
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
||||||
process_orders()
|
process_orders()
|
||||||
|
@ -285,7 +352,7 @@ function test_give_ship_scale()
|
||||||
local f = faction.create("human")
|
local f = faction.create("human")
|
||||||
local u1 = unit.create(f, r, 1)
|
local u1 = unit.create(f, r, 1)
|
||||||
local u2 = unit.create(f, r, 1)
|
local u2 = unit.create(f, r, 1)
|
||||||
local sh = ship.create(r, 'boat')
|
local sh = ship.create(r, 'longboat')
|
||||||
sh.number = 3
|
sh.number = 3
|
||||||
sh.damage = 9
|
sh.damage = 9
|
||||||
sh.size = 12
|
sh.size = 12
|
||||||
|
@ -305,10 +372,10 @@ function test_give_ship_all_ships()
|
||||||
local f = faction.create("human", 'noreply@vg.no')
|
local f = faction.create("human", 'noreply@vg.no')
|
||||||
local u1 = unit.create(f, r, 1)
|
local u1 = unit.create(f, r, 1)
|
||||||
local u2 = unit.create(f, r, 1)
|
local u2 = unit.create(f, r, 1)
|
||||||
u1.ship = ship.create(r, 'boat')
|
u1.ship = ship.create(r, 'longboat')
|
||||||
u1.ship.damage = 2
|
u1.ship.damage = 2
|
||||||
u1.ship.number = 2
|
u1.ship.number = 2
|
||||||
u2.ship = ship.create(r, 'boat')
|
u2.ship = ship.create(r, 'longboat')
|
||||||
u2.ship.number = 1
|
u2.ship.number = 1
|
||||||
u1:add_order("GIB " .. itoa36(u2.id) .. " 2 SCHIFF")
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 2 SCHIFF")
|
||||||
process_orders()
|
process_orders()
|
||||||
|
@ -323,7 +390,7 @@ function test_give_ship_self_only()
|
||||||
local f2 = faction.create("human")
|
local f2 = faction.create("human")
|
||||||
local u1 = unit.create(f1, r, 1)
|
local u1 = unit.create(f1, r, 1)
|
||||||
local u2 = unit.create(f2, r, 1)
|
local u2 = unit.create(f2, r, 1)
|
||||||
local sh = ship.create(r, 'boat')
|
local sh = ship.create(r, 'longboat')
|
||||||
sh.number = 2
|
sh.number = 2
|
||||||
u1.ship = sh
|
u1.ship = sh
|
||||||
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 SCHIFF")
|
||||||
|
@ -337,7 +404,7 @@ function test_give_ship_not_cursed()
|
||||||
local f = faction.create("human")
|
local f = faction.create("human")
|
||||||
local u = unit.create(f, r, 1)
|
local u = unit.create(f, r, 1)
|
||||||
local u2 = unit.create(f, r, 1)
|
local u2 = unit.create(f, r, 1)
|
||||||
local sh = ship.create(r, 'boat')
|
local sh = ship.create(r, 'longboat')
|
||||||
u.ship = sh
|
u.ship = sh
|
||||||
u:add_item("speedsail", 1)
|
u:add_item("speedsail", 1)
|
||||||
u:add_order("BENUTZE 1 Sonnensegel")
|
u:add_order("BENUTZE 1 Sonnensegel")
|
||||||
|
@ -354,7 +421,7 @@ function test_speedsail_on_ship()
|
||||||
local r = region.create(1, 0, 'plain')
|
local r = region.create(1, 0, 'plain')
|
||||||
local f = faction.create("human")
|
local f = faction.create("human")
|
||||||
local u = unit.create(f, r, 1)
|
local u = unit.create(f, r, 1)
|
||||||
local sh = ship.create(r, 'boat')
|
local sh = ship.create(r, 'longboat')
|
||||||
u.ship = sh
|
u.ship = sh
|
||||||
u:add_item("speedsail", 1)
|
u:add_item("speedsail", 1)
|
||||||
u:add_order("BENUTZE 1 Sonnensegel")
|
u:add_order("BENUTZE 1 Sonnensegel")
|
||||||
|
@ -366,7 +433,7 @@ function test_no_speedsail_on_convoy()
|
||||||
local r = region.create(1, 0, 'plain')
|
local r = region.create(1, 0, 'plain')
|
||||||
local f = faction.create("human")
|
local f = faction.create("human")
|
||||||
local u = unit.create(f, r, 1)
|
local u = unit.create(f, r, 1)
|
||||||
local sh = ship.create(r, 'boat')
|
local sh = ship.create(r, 'longboat')
|
||||||
u.ship = sh
|
u.ship = sh
|
||||||
sh.number = 2
|
sh.number = 2
|
||||||
u:add_item("speedsail", 2)
|
u:add_item("speedsail", 2)
|
||||||
|
|
99
src/give.c
99
src/give.c
|
@ -299,6 +299,9 @@ static void transfer_ships(ship *s1, ship *s2, int n)
|
||||||
s2->damage += s1->damage * n / s1->number;
|
s2->damage += s1->damage * n / s1->number;
|
||||||
s2->size += s1->size * n / s1->number;
|
s2->size += s1->size * n / s1->number;
|
||||||
s2->number += n;
|
s2->number += n;
|
||||||
|
if (s1->coast != NODIRECTION) {
|
||||||
|
s2->coast = s1->coast;
|
||||||
|
}
|
||||||
scale_ship(s1, s1->number - n);
|
scale_ship(s1, s1->number - n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -322,8 +325,9 @@ message * give_ship(unit *u1, unit *u2, int n, order *ord)
|
||||||
{
|
{
|
||||||
assert(u1->ship);
|
assert(u1->ship);
|
||||||
assert(n > 0 && n <= u1->ship->number);
|
assert(n > 0 && n <= u1->ship->number);
|
||||||
if (u1->faction != u2->faction) {
|
if (u1->ship->type->range < 3) {
|
||||||
return msg_error(u1, ord, 324);
|
/* Keine Boote und anderes Kleinzeug erlaubt */
|
||||||
|
return msg_error(u1, ord, 326);
|
||||||
}
|
}
|
||||||
if (ship_cursed(u1->ship)) {
|
if (ship_cursed(u1->ship)) {
|
||||||
return msg_error(u1, ord, 323);
|
return msg_error(u1, ord, 323);
|
||||||
|
@ -331,51 +335,72 @@ message * give_ship(unit *u1, unit *u2, int n, order *ord)
|
||||||
if (u1 != ship_owner(u1->ship)) {
|
if (u1 != ship_owner(u1->ship)) {
|
||||||
return msg_error(u1, ord, 146);
|
return msg_error(u1, ord, 146);
|
||||||
}
|
}
|
||||||
if (fval(u_race(u2), RCF_CANSAIL)) {
|
if (u2 == NULL) {
|
||||||
if (u2->ship) {
|
if (n < u1->ship->number) {
|
||||||
if (u2 != ship_owner(u2->ship)) {
|
ship * sh = new_ship(u1->ship->type, u1->region, u1->faction->locale);
|
||||||
return msg_error(u1, ord, 146);
|
scale_ship(sh, 0);
|
||||||
}
|
transfer_ships(u1->ship, sh, n);
|
||||||
if (u2->ship->type != u1->ship->type) {
|
}
|
||||||
return msg_error(u1, ord, 322);
|
else {
|
||||||
}
|
return msg_error(u1, ord, 327);
|
||||||
if (ship_cursed(u2->ship)) {
|
}
|
||||||
return msg_error(u1, ord, 323);
|
} else {
|
||||||
}
|
if (u1->faction != u2->faction) {
|
||||||
if (u1->ship->coast != u2->ship->coast) {
|
return msg_error(u1, ord, 324);
|
||||||
if (u1->ship->coast != NODIRECTION) {
|
}
|
||||||
if (u2->ship->coast == NODIRECTION) {
|
if (fval(u_race(u2), RCF_CANSAIL)) {
|
||||||
u2->ship->coast = u1->ship->coast;
|
if (u2->ship) {
|
||||||
|
if (u2->ship == u1->ship) {
|
||||||
|
ship * sh = new_ship(u1->ship->type, u1->region, u1->faction->locale);
|
||||||
|
scale_ship(sh, 0);
|
||||||
|
leave_ship(u2);
|
||||||
|
u_set_ship(u2, sh);
|
||||||
|
} else {
|
||||||
|
if (u2 != ship_owner(u2->ship)) {
|
||||||
|
return msg_error(u1, ord, 146);
|
||||||
}
|
}
|
||||||
else {
|
if (u2->ship->type != u1->ship->type) {
|
||||||
return msg_error(u1, ord, 182);
|
return msg_error(u1, ord, 322);
|
||||||
|
}
|
||||||
|
if (ship_cursed(u2->ship)) {
|
||||||
|
return msg_error(u1, ord, 323);
|
||||||
|
}
|
||||||
|
if (u1->ship->coast != u2->ship->coast) {
|
||||||
|
if (u1->ship->coast != NODIRECTION) {
|
||||||
|
if (u2->ship->coast == NODIRECTION) {
|
||||||
|
u2->ship->coast = u1->ship->coast;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return msg_error(u1, ord, 182);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if (n < u1->ship->number) {
|
||||||
if (n < u1->ship->number) {
|
transfer_ships(u1->ship, u2->ship, n);
|
||||||
transfer_ships(u1->ship, u2->ship, n);
|
}
|
||||||
|
else {
|
||||||
|
transfer_ships(u1->ship, u2->ship, n);
|
||||||
|
transfer_units(u1->ship, u2->ship);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
transfer_ships(u1->ship, u2->ship, n);
|
if (n < u1->ship->number) {
|
||||||
transfer_units(u1->ship, u2->ship);
|
ship * sh = new_ship(u1->ship->type, u1->region, u1->faction->locale);
|
||||||
|
scale_ship(sh, 0);
|
||||||
|
u_set_ship(u2, sh);
|
||||||
|
transfer_ships(u1->ship, sh, n);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
u_set_ship(u2, u1->ship);
|
||||||
|
ship_set_owner(u2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (n < u1->ship->number) {
|
return msg_error(u1, ord, 233);
|
||||||
ship * sh = new_ship(u1->ship->type, u1->region, u1->faction->locale);
|
|
||||||
scale_ship(sh, 0);
|
|
||||||
u_set_ship(u2, sh);
|
|
||||||
transfer_ships(u1->ship, sh, n);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
u_set_ship(u2, u1->ship);
|
|
||||||
ship_set_owner(u2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
return msg_error(u1, ord, 233);
|
|
||||||
}
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue