From 3eb1339a65b1cf35221ceee42c2b53f7e684ba88 Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Wed, 8 Apr 2015 03:42:44 +0200 Subject: [PATCH] -tg- Dice overhaul --- code/game/objects/items/weapons/dice.dm | 82 ++++++++++++++++++++---- icons/obj/dice.dmi | Bin 2679 -> 2282 bytes 2 files changed, 71 insertions(+), 11 deletions(-) diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm index 72c45893439..231bf486d77 100644 --- a/code/game/objects/items/weapons/dice.dm +++ b/code/game/objects/items/weapons/dice.dm @@ -1,29 +1,89 @@ /obj/item/weapon/dice name = "d6" - desc = "A dice with six sides." + desc = "A die with six sides. Basic and servicable." icon = 'icons/obj/dice.dmi' - icon_state = "d66" + icon_state = "d6" w_class = 1 var/sides = 6 - attack_verb = list("diced") + var/result = null /obj/item/weapon/dice/New() - icon_state = "[name][rand(sides)]" + result = rand(1, sides) + update_icon() + +/obj/item/weapon/dice/d2 + name = "d2" + desc = "A die with two sides. Coins are undignified!" + icon_state = "d2" + sides = 2 + +/obj/item/weapon/dice/d4 + name = "d4" + desc = "A die with four sides. The nerd's caltrop." + icon_state = "d4" + sides = 4 + +/obj/item/weapon/dice/d8 + name = "d8" + desc = "A die with eight sides. It feels... lucky." + icon_state = "d8" + sides = 8 + +/obj/item/weapon/dice/d10 + name = "d10" + desc = "A die with ten sides. Useful for percentages." + icon_state = "d10" + sides = 10 + +/obj/item/weapon/dice/d00 + name = "d00" + desc = "A die with ten sides. Works better for d100 rolls than a golfball." + icon_state = "d00" + sides = 10 + +/obj/item/weapon/dice/d12 + name = "d12" + desc = "A die with twelve sides. There's an air of neglect about it." + icon_state = "d12" + sides = 12 /obj/item/weapon/dice/d20 name = "d20" - desc = "A dice with twenty sides." - icon_state = "d2020" + desc = "A die with twenty sides. The prefered die to throw at the GM." + icon_state = "d20" sides = 20 /obj/item/weapon/dice/attack_self(mob/user as mob) - var/result = rand(1, sides) + diceroll(user) + +/obj/item/weapon/dice/throw_at(atom/target, range, speed, mob/user as mob) + if(!..()) + return + diceroll(user) + +/obj/item/weapon/dice/proc/diceroll(mob/user as mob) + result = rand(1, sides) var/comment = "" if(sides == 20 && result == 20) comment = "Nat 20!" else if(sides == 20 && result == 1) comment = "Ouch, bad luck." - icon_state = "[name][result]" - user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \ - "You throw [src]. It lands on a [result]. [comment]", \ - "You hear [src] landing on a [result]. [comment]") \ No newline at end of file + update_icon() + if(initial(icon_state) == "d00") + result = (result - 1)*10 + if(user != null) //Dice was rolled in someone's hand + user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \ + "You throw [src]. It lands on [result]. [comment]", \ + "You hear [src] landing on [result]. [comment]") + else if(src.throwing == 0) //Dice was thrown and is coming to rest + visible_message("[src] rolls to a stop, landing on [result]. [comment]") +/* +/obj/item/weapon/dice/d4/Crossed(var/mob/living/carbon/human/H) + if(istype(H) && !H.shoes) + H << "You step on the D4!" + H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg"))) + H.Weaken(3) +*///ew. +/obj/item/weapon/dice/update_icon() + overlays.Cut() + overlays += "[src.icon_state][src.result]" \ No newline at end of file diff --git a/icons/obj/dice.dmi b/icons/obj/dice.dmi index 669ad215c5c3ad4df8aea2265eb66f2b31277851..0c9cd35a6b22a370ed7d265bb57658619c92e2bb 100644 GIT binary patch literal 2282 zcmZWo3p5k#8y_>Zp}B2FWs_xYkxWXL-4G>IvdWau+{s$Gv|L8ZM?(4BFXL0_E0W0E zFA)_RDwj-dY4xX)urc=O`=9@*bN=r+&+mPn_nhZFzu)h9-#;Af4=F%2AOHYB!Pds| zH~=7p`WYL6002PS_3Y#I?S`YBlT~wb^Mdaw{!XJ5Lo^MnAr&|F zal!~f4pQ$qu9PLF>WL34%)Wliwt}bNb*~xfdZSgWboIGZTbd4%jDTc%I!gpI@mn*E z*C|QSkK3OB;HL+v>$z>X(;g-aeZpNn*#pg;g1G$%2wBCr*&XzBN!oWnk}@8$I^ zRvI$#x~;f9bD(olDgFuKhzC3#s-Xvy$fygt^89QEe|$AGekIAH=FjsFa05bk{|n;0 zOI>L`)DL>}+-FYymm9&p#k+7uwcXpWu3I}qY#swTdv_!siI&#bkY&b0v%{n`ch`YcJwtHJy9rO19RGwn0l`!`5h?Q|AbeFn ze^!(ks17Y&l_aeqdo0yz4U|$g0RXb~ww45^(45&^aLBNQqV-VDLt_K*c@wu76V*|P z2$PE{$#AVxOHxe;QCb>r7&%W{t z@?I}7yN1D{Pss(bnO@)lQh5l0(($k)nC4{B0aY&~(##Gc2v-lNk=4?3wwd4xqMZ*$ zGPwLgzOBWf+qd2+_KVsVs!r0cT^h{KZn{uxmOyHq*nJ*KMqiEJo?ojUsV(uSh~vUA^TeXkSGILp(Tce24CY%Mf5c=O_DmAOe4adG!FC8p+960=OGr<0qv z+lZX(^#09>2Oi{tXJzzqm6%e#p!wM5W&z|7lQT zm26&c_lA70GT&#J8k48`kX@2rWR`LI?VEbFzixc`PeRRmAHk!iJ5NFzA{#3-fe}Oh zI{MSq^(EY2!@cL%E>hUNytdk*QUN@_AqAlZ(mOPeWDH&&CZEEVl%qbt-VQ{SNl!iU zWk_IXNL(ZHnTpJR`+rBL&Ud6iZkgY+A*mi-(?F;KLA)rn*9bDfDzDmWwXg9?%(2(x zJtNluph3`wX3*3VZI}wFsjpFYKwu2IUd`(^5d{)cswO1@< zpOrQ~zpX9C!RqPKQt;*p(1C+9b6&bM!U|u{g5V%lba0>mCoxo#ZEIli-sN%mijPe} zL7y>F8K5O>e31WXkw($91JJe&4|`ID=QN(M(pTiE0V$Y zD`n^Wx;_`Nig1Xif*sT$Td-vZs& z6=BHz3eJ`PO${4v{PXRmr?<$daKY>7o7Ox_Q3cU${Rp} z<%qwrSPbJft@rqwa=?<6AkD}FA`=#c8N23ENU)7U3?!Bzn(|OzVN>hQy6X$Nq3XVd zHZ~6DfVB{(Es{}gb69bb5VG>6DUY51>g81;MrC`B=saWw0sKs%6Kep-$bsl@YpeeJb zUqn!BSgvNpa;r~x0Zp48fi`m%o8z#n#XCNH z0iWfKa&t}>S269vwI-_-kaS2^_b524dq4QL@()UMyjh9WS$n47dgTh+FPYB#J_kAY zfY2x_>U-tzG)!2^%8R688;%QuqnA@2F^QPp{#>K{>9p(iTGYpe#pQ-{jS6D;_mQ=3 zX)k5W>Bdu2){3j0(jS$z53P%7e)Ukir|Y|+w~-0$`<;0foMD~-TDSQKuw>~yHqm%? zt04~Y;_-!rxmHn?Wekx5f895m=Uso*gG13=oeHy-(CA}z%pwES*QB{8l4%N4crg*~ z4ifQOKJ1U+gqm7Lz=aX@s`lM-jc0c3h~?e@Sc5f5FRqW_v6- zcR_Xe zSM^=R-%n^8(h$yX1nM%J7;Ke|;*P$3RHgVPruZS@N@AMKs^=~93bTgEjk!lsQ>S&D z#YfI5I@$WbeO^Kw;{Wtd=o8m^ENqV0;{WvT$0J1OPi;}-I2iT$NVw-E!q3vy%HFb! H=*Ij99&{5r literal 2679 zcma)8cT^MU7M~Cy7zq&zAR<9z#kByUMzD}j1YG)xpmd(Nm;goysE8zj0wPj0VnkS@ zf>J^Ug9sW6&*&mGASK4oBArkYN^Zydoij7{+_`7&@4LVI`|dYME>5;6 zq!tnY0Mt=C>z^U}8oD1UD?v}sZKr%7Q+vtnM1=Ke@~Lpbxd;O3EC5{0PH8JgzBOL` ze%dVRMh;&%>B&?*sej}^mB{5x)dn}axL2>NG&H7p;ZuIEFa;xD{1TFuOuIbn%*-)^ z`TX*IqUU!qwD%DkwfaMM@oqJEE0`7Db=n?$_nwK_n&1+`tHcR;$F`Qec&Br2^|IG9Sn4cy4o7n^Udj7;#Y+=nl%NiVD2c{-4kx6{5~T~ zbG>i#`We!axLK=_9W*j8-{`+uo)WwTqkM*kF}Jp z;bgUb*qd=Uf1+$sBcxz~OF_z&t6R#=U&vV(HVKQA?l3ZE2XQ!dzoLDe>s9P;_ zQ79=B(wB`44S#DsT>(0lRvmR(L6chf!P|-ZOjF^UuuH6?Lkt{Ml@k^R-%XIpE4JjK zPA+atv1tja1XFC_fQh6b*uR041Evln&@vJc z=W38jeGGh19mf3fDfr6X4Z`_DM)y>o@g~}N0S!jJQJbz^HW%#K^wTP{-cP#MG5AqA zU2W@8u)Y}KO_d@Mxu3PZ#1^^kEeTUlrqYISKbajQP?Amlt zn34{5=JW(cy}rl>AWt4HLJ=MSxnPbovu9ntXK_%;R;K*dP}_AFT%5AK`@fdNhp>j7n!J)FAO$Ei=K z51<4Pf>z}TZyaD>43)(bBx##q-w`30t}edP75|~EaI)AaE1x`2(tn%Jqx++j8y1*p`fgDNV3#D`$ zm4h-dBmVaIk|QOIH#1*bIfu6L0%=oeFO?QVepq=5KeUcAjm+ASX1Py&SoH|FC`XqM z#X>|pg>ZDfF7~sbaPaJ^KF^zzp#{0VfON!}i#v}LOaIO61;1%KB;d)KCT!BOuQt?7 zM{0iXm1m2J<9^u)^6p-#LVX>|6Bh!JcKLBtn={)H>;jgiNfLj}TVAg6l=M=eOwQIo ze9wuIzQoVupVZk4bb9dd^Zi!0>F;HhP)-zBPfFM$NQPRm?fIy0mfwd#lX?hdN{zZk*-jqES)ppw`5L*OHf*UeHu%$%z<2jqqFA~c>&#ErpQN_+nPwe`LwJAGFa z9PjoHSlwX^SnpE-{vY?RIMiGz!0OD~FRuunsw#1IX8VAbPejSf;-4`idyPt24KH@u zAN1l!4m4y;R;=%u{ja=TDQmqbHGkfG1 zra2zeTEvdR&&=6x43RoMEeFd-;bJ4F!q6BguZ7B^&kq}{-v`zfUs6}@zah41I4?~1kmp&PF(71gJA$4X$9{sT^kj|q0ouuqb1 zdaF-u>u2c{b}8^Y)ZEAS3yRU_7DF}xCbP6|eK#O5W{w+v+CRpI93$n1D@xwE_mjz7 zc6lwoQm?Gaf|b{2P-$Nz1@LoYv-TF(T=gdmDjVB75b1F$@*KP;#f0Z@I_3(c)C@V@ zYe0J~g*tzV0sru(8p}3jSt_4+HAx zeD!pPfU49Ieb7zyH)yK8iTL4T_13^X%=$Rd(6Tr}5nSfXgTy7BITHV6^o73Jq2{5n zv9aX=PTI71Hebf%$Tq5B2fp@0f0Dq_BTm*Omi}?S E16^lA)c^nh