Deconstruction more generic.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8050 c06c8d41-db1a-0410-9941-cceddc491573
B4YYKEZVHLGRFAHEP5ATEV4MYRPGXQPWTUXGGG7ITZH3ZGV3VMBQC KO7TLN7OM7UQF33RRTOFPFTDQLTYCOE4N7KWQUTWRIUSEB6PQ4WQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC RCIA3MEV4YAYM3JBBRH7LUL5ILQWHN6G7WJMFS5LCUFABTP2PXGQC S5CIJLSFFXV445G6CH2AQ3YDU3P7RLSIHWV7GBJ4MZ4C26BWCY6AC 5FHWTG7M6FW4B3I33YI7QSM3OZIB6ZGC6TI6JISSLY5Y43HI56VAC XHA6B4P5FAI5OTUQOA6J4VS2SBBR2MAFL2KMEBGD54O55WNSOGTQC YCL3W2PFE6ILTGBFODCSXNPDIA46KVSZP2TI7HDMYAOEJT65RIEAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC FIYBXLWALQINNQTHG2KNDUUTAQAZRDDLXW2XOVSKDKBADJ3XCJ4AC K7J2IGELTIQL5KAMBV62MFVIVMEZEWCOLZ7GHFXHYPANYIF7BRZAC 7YUGK5Q64KG5O7GJGTUBRRLHAHBCJ5YOE23YUPT6UBKUSB67CYAQC M4H3RQME2IMRCMXFGYPCJS2DMW7HAGPUHCJ7X3524TGYHOBZWQZQC ZVG6W2UMHJ3GHLF4ZVCUHZOOEUNJMWPURVBN2OQXKVTXYC4Z2LPQC A5UFFILFAQTJRKKD6YPXVFRLMDRNQ5N3LW57Q3VWRPGD232CCG4AC case MONS_ICE_STATUE: // blast of ice fragmentscase MONS_ICE_BEAST:case MONS_SIMULACRUM_SMALL:case MONS_SIMULACRUM_LARGE:explode = true;beam.name = "icy blast";beam.colour = WHITE;beam.damage.num = 2;beam.flavour = BEAM_ICE;if (player_hurt_monster(midx, beam.damage.roll()))beam.damage.num++;break;case MONS_FLYING_SKULL: // blast of bonecase MONS_SKELETON_SMALL:case MONS_SKELETON_LARGE:case MONS_SKELETAL_DRAGON:case MONS_SKELETAL_WARRIOR:mprf("The %s explodes into sharp fragments of bone!",(mon->type == MONS_FLYING_SKULL) ? "skull" : "skeleton");explode = true;beam.name = "blast of bone shards";beam.colour = LIGHTGREY;if (x_chance_in_y(pow / 5, 50)) // potential insta-kill{monster_die(mon, KILL_YOU, NON_MONSTER);beam.damage.num = 4;}else{beam.damage.num = 2;if (player_hurt_monster(midx, beam.damage.roll()))beam.damage.num += 2;}goto all_done; // i.e. no "Foo Explodes!"
if (mons_is_icy(mon->type)) // blast of ice{explode = true;beam.name = "icy blast";beam.colour = WHITE;beam.damage.num = 2;beam.flavour = BEAM_ICE;if (player_hurt_monster(midx, beam.damage.roll()))beam.damage.num++;break;}else if (mons_is_skeletal(mon->type)|| mon->type == MONS_FLYING_SKULL) // blast of bone{mprf("The %s explodes into sharp fragments of bone!",(mon->type == MONS_FLYING_SKULL) ? "skull" : "skeleton");explode = true;beam.name = "blast of bone shards";beam.colour = LIGHTGREY;if (x_chance_in_y(pow / 5, 50)) // potential insta-kill{monster_die(mon, KILL_YOU, NON_MONSTER);beam.damage.num = 4;}else{beam.damage.num = 2;if (player_hurt_monster(midx, beam.damage.roll()))beam.damage.num += 2;}goto all_done; // i.e., no "Foo Explodes!"}else