package tiles defaultTile getTile("grass") newSurfaceTile("grass1") newSurfaceTile("deep") { type "deep" } newSurfaceTile("dirt") newSurfaceTile("sand") newSurfaceTile("tile") { type "craft" } defaultSurfaceTile newSurfaceTile("rocky1") defaultDeepTile newDeepTile("deep_default") newDeepTile("deep_bridge") newGroup("sand") { surface getSurfaceTile("sand") onAtomic getTile("dirty") sub("sand1") sub("cactus") { onBomb newChange("") { variant {p 10;} variant { p 1; result getTile("sand1") } } } sub("skeleton") } newTile("abyss") { type "abyss"; bottomLess(); surface getSurfaceTile("deep") } newGroup("grass") { type "floor" onBomb newChange("") { variant { p 2; }; variant { p 1; result getTile("hole1") } } onAtomic getTile("dirty") sub("grass") sub("grass2") sub("grass3") } newTile ("field") { type "floor" onAtomic getTile("dirty") } newGroup ("hole") { type "floor"; onBomb newChange("next_or_this") { variant { p 2; } variant { p 1; result next } } onAtomic getTile("dirty_hole") sub("hole1"); sub("hole2"); sub("hole3") { surface getSurfaceTile("rocky1") } sub("hole4") { surface getSurfaceTile("rocky1") } } newGroup ("rocky") { type "floor" surface getSurfaceTile("rocky1") onBomb getChange("next_or_this") sub("rocky") { onAtomic getTile("dirty") } sub("rocky_hole") { onAtomic getTile("dirty_hole") } } newGroup ("dirty") { type "floor" surface getSurfaceTile("dirt") onBomb getChange("next_or_this") sub("dirty") sub("dirty_hole") } newChange ("destroy") { effect BLOCK_EFFECT_DESTROY_BLOCK variant {p 2; result getTile("grass")} variant {p 1; result getTile("grass2")} variant {p 1; result getTile("grass3")} } newChange ("destroy_rocky") { effect BLOCK_EFFECT_DESTROY_BLOCK variant { p 2; result getTile("grass") } variant { p 1; result getTile("grass2") } variant { p 1; result getTile("grass3") } } newChange ("destroy_tile") { effect BLOCK_EFFECT_DESTROY_BLOCK variant { p 2; result getTile("tile1") } variant { p 1; result getTile("tile2") } } newChange ("destroy_dirty") { effect BLOCK_EFFECT_DESTROY_BLOCK variant { p 2; result getTile("dirty") } } newGroup ("bridge") { type "floor"; surface getSurfaceTile("deep"); deep getDeepTile("deep_bridge"); oriented(); onBomb newChange("bridge_down") { variant { p 2; }; variant { p 1; result getTile("abyss"); effect BLOCK_EFFECT_DESTROY_BLOCK } } sub("bridge_h") { direction 2 }; sub("bridge_v") { direction 0 } } newGroup ("bridge_metal") { type "floor"; surface getSurfaceTile("deep"); deep getDeepTile("deep_bridge"); oriented(); sub("bridge_metal_v") { direction 2 }; sub("bridge_metal_h") { direction 0 } } newGroup ("tile") { type "floor"; surface getSurfaceTile("tile"); onBomb getChange("next_or_this"); onAtomic newChange("") { variant { p 1;result getTile("tile4") } variant { p 1;result getTile("dirty") } }; sub("tile1"); sub("tile2"); sub("tile3"); sub("tile4"); sub("well") } newGroup ("arrow") { type "arrow"; surface getSurfaceTile("tile"); deep getDeepTile("deep_bridge"); oriented(); onAtomic getTile("dirty"); sub("left") { direction 4 }; sub("up") { direction 6 }; sub("right") { direction 0 }; sub("down") { direction 2 } } newChange("prise_in_brick") { result getChange("destroy_rocky"); variant { p 60; item getSlot("bomb") } variant { p 35; item getSlot("power") } variant { p 35; item getSlot("scate") } variant { p 15; item getSlot("bat") } variant { p 10; item getSlot("kick") } variant { p 10; item getItem("random") } variant { p 10; item getItem("surprise") } //variant { p 20; item getSlot("heart")} variant { p 10; item getSlot("key")} variant { p 650 } } newChange("prise_in_brick2") { result getChange("destroy_rocky"); variant { p 60; item getSlot("bomb")} variant { p 35; item getSlot("power")} variant { p 35; item getSlot("scate")} variant { p 15; item getSlot("bat")} variant { p 10; item getSlot("kick")} variant { p 10; item getItem("random")} variant { p 10; item getItem("surprise")} //variant { p 20; item getSlot("heart")} variant { p 10; item getSlot("key")} variant { p 325 } } newTile("brick") { type "solid" onDamage getChange("prise_in_brick") onPremiumDamage getChange("prise_in_brick2") } newGroup ("tough") { type "solid"; onDamage next; onAtomic getTile("dirty"); sub("tough9") {onAtomic getTile("tough2") }; sub("tough8") {onAtomic getTile("tough1") }; sub("tough7"); sub("tough6"); sub("tough5"); sub("tough4"); sub("tough3"); sub("tough2"); sub("tough1") {onDamage getChange("destroy_rocky") } } newGroup ("wall") { type "solid"; onDamage next; onAtomic getTile("dirty"); sub("wall6"); sub("wall5"); sub("wall4"); sub("wall3"); sub("wall2"); sub("wall1") {onDamage getChange("destroy_rocky") } } newTile ("chest_in_rock") { type "solid"; onDamage getTile("chest") } newTile ("metal") { type "solid" } newTile ("tunnel") { type "tunnel"; surface getSurfaceTile("rocky1"); onAtomic getTile("rocky"); } newTile ("tunnel_tile") { type "tunnel"; ceiling getTile("tunnel"); surface getSurfaceTile("tile"); onAtomic getChange("destroy_tile"); } newTile ("chest") { type "box"; value 100; onDamage newChange("") { result getChange("destroy"); variant { p 1; item getSlot("shield") } variant { p 1; item getPerk("jetpack") } } } newTile ("chest_shield") { type "box"; value 100; ceiling getTile("chest"); onDamage newChange("") { result getChange("destroy"); variant { p 1; item getSlot("shield") } } } newTile ("chest_tile_shield") { type "box"; surface getSurfaceTile("tile"); ceiling getTile("chest"); value 100; onDamage newChange("") { result getChange("destroy_tile"); variant { p 1; item getSlot("shield") } } } newTile ("gold_chest") { type "box"; value 100; onDamage newChange("") { result getChange("destroy"); variant { p 1; item getItem("bomb_tp") } } } newTile ("gold_chest_tile") { type "box"; surface getSurfaceTile("tile"); ceiling getTile("gold_chest"); value 100; onDamage newChange("") { result getChange("destroy_tile"); variant { p 1; item getItem("bomb_tp") } } } newChange("chest_or_glod_chest") { variant {p 1; result getTile("chest")} variant {p 1; result getTile("gold_chest")} } newTile ("metal_chest") { type "box"; value 100 } newTile ("metal_chest_tile") { type "box"; surface getSurfaceTile("tile"); ceiling getTile("metal_chest"); value 100; } newGroup ("box") { type "box"; surface getSurfaceTile("tile"); sub("box1") { value 30; onDamage newChange("") { item getSlot("power"); result getChange("destroy_tile") } } sub("box2") { value 70; onDamage newChange("") { result getChange("destroy_tile"); variant {p 1; item getSlot("atomic")} variant {p 1; item getItem("detonator_pack") } } } sub("box_detonator_power") { value 50; onDamage newChange("") { result getChange("destroy_tile"); variant {p 1; item getSlot("power")} variant {p 1; item getItem("detonator_pack")} } } } newGroup ("box_bombs") { type "box"; buildValue 10; sub("box_with_bombs") { onDamage newChange("") { effect BLOCK_EFFECT_SPAWN_BOMBS; result getChange("destroy_rocky") } } sub("box_with_bombs_tile") { surface getSurfaceTile("tile"); onDamage newChange("") { effect BLOCK_EFFECT_SPAWN_BOMBS; result getChange("destroy_tile") } } } newTile ("goal") { type "building"; floor getTile("field") } newTile ("wc") { type "building"; } newGroup ("bush") { onAtomic getTile("rocky"); sub("bush") {type"glass" }; sub("bush_hollow") {type"hideout"} } newGroup ("gate") { surface getSurfaceTile("rocky1"); onAtomic getTile("rocky"); sub("gate_closed") {type "box" }; sub("gate_opened") {type "building" } } newGroup ("button") { type "floor"; surface getSurfaceTile("tile"); onAtomic getTile("tile3"); sub("button_off"); sub("button_on"); sub("button_fake") {floor getTile("button_on") } } newGroup ("button_toggle") { type "floor"; surface getSurfaceTile("tile"); onAtomic getTile("tile3"); sub("button2_off") {floor getTile("button_off") }; sub("button2_on") {floor getTile("button_on") } } newGroup ("bridge_toggle") { surface getSurfaceTile("deep"); bottomLess(); sub("bridge_off") {type "abyss" }; sub("bridge_on") {type "floor" } } newGroup ("flag") { type "building"; teamplay(); sub("flag_white"); sub("flag_red"); sub("flag_blue"); sub("flag_yellow"); sub("flag_purple") } newGroup ("portal") { type "solid"; sub("portal1"); sub("portal2"); sub("portal3"); sub("portal4") } newGroup ("newwalls") { type "wall"; onDamage getTile("grass"); sub("walls"); sub("base") } newGroup ("tubes") { type "box"; surface getSurfaceTile("grass1"); onDamage getTile("grass"); deep getDeepTile("deep_bridge"); sub("tube1"); sub("tube2"); sub("tube3"); sub("tube4") }