From fa0eabd52f6cce014dc57f38673bee30634fa72f Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Wed, 20 Nov 2019 17:45:41 -0600 Subject: [PATCH] Centered helipad building, added barracks and helipad. --- assets/buildings/helipad/helipad_overlay.png | Bin 694 -> 613 bytes assets/buildings/helipad/helipad_shell.png | Bin 3991 -> 3597 bytes assets/svg/buildings/helipad.svg | 106 ++++++++++--------- lib/entities/buildings/barracks.rb | 9 ++ lib/entities/buildings/helipad.rb | 10 ++ lib/entity.rb | 2 + lib/states/closing.rb | 1 + lib/states/game.rb | 16 +++ 8 files changed, 95 insertions(+), 49 deletions(-) create mode 100644 lib/entities/buildings/barracks.rb create mode 100644 lib/entities/buildings/helipad.rb diff --git a/assets/buildings/helipad/helipad_overlay.png b/assets/buildings/helipad/helipad_overlay.png index 29284e96451fe8b4a994c58bdb211bd429efab3e..efe89cc19aa954b8bbab1a2d92b247861b604267 100644 GIT binary patch delta 514 zcmdnS`jlltZaw28PZ!6KiaBp@ZS)ff6lwp+e@I8irD@u}gVVyc9XWFB$PoeS?%wqW zxKA+Om>rR!lac9hq3exu#7XH0E~gWEn|DNPP|SKa_bkiI#}B@H=aoM5^ZS&4Zm+R| z=Oh(mbo53{%i&e5Id0~W$DK-;P1o8rZB?K7s9x@aVA$-O7rSnWF~mN|b6uPJY_ar@ z`;ra@%p7S92YD1CUN2h^D^cH6xXP?;(aXAZ*?PMgXT3A1K4;J7C-uU0lFHV|$H5nb z_PjsvH>Q^7slcxT+g&Pacdg=C_S*mZt`7?v{PL1HiOfo8XawZsU+)A&eZ>V!;D+iTsemYx7#u_us>Np<^I8+kw@>zZJ4<7 zZGou6C8jy{XIKh2a>C#2)r@mxF>Xj;6F9@rBC%$~CW-8~v`B#5)eS(MVAqKYnXMR~W-?6T)KhS;tYIXb7RL@Bz z**^l~w&sWi=pD|?5)ELAzUX`H;;#Qq^PDzL{P{n<{g2|?_@|*Ru#lO-$dY|m#N^2* x=Bjnq%yPLORLJ*zOSie~qm3H!o|oR&F>U!7-7|4@rxgPbc)I$ztaD0e0suc4^pF4m delta 596 zcmaFLvW;~@ZatH+r;B4q#hkadY_o#{WsZN$7n*#`ZbgTaW5@+Py(SF}iwGIn7#W#4 zExUGdJkl1J!@ZAnWh|H9qYHUWJF*1jSBP*g>fRP1TwN@D|A6gI*Sz;1x83JYIr)Ch zocd4u8;kv!CaHL$qLr_*Hgexs#+^H3y>q>?$pU`;-36=9Eb7{zU&eUbq)wvmUTf!? z55@-U_TKAO3WR1d=z93GY&sjHtr=!p##lX$>7p?+u9ptMoJa2}@g|R6H-`1>DkG!B~E)Ky}LZh4&keA9&sKL!v-Az0)*7 zQ9Gml;9@lyeqWyj+gbS=-dkpitlProb71r5g1;dO@h$JP&M^2JJ$hMKQD+$No`1#u z_NTrU)2H?yx}I%Nsj%UjOo?@Y*pC^%-MGSD_1=(tP^3`JeDc+Vo$d>&rTJ1*-#74E zieFYuFq)w2a7ogvlD$$ya3+%Lr*7k}_e$KrQh(2B*3|V5#W()&N>mD-*!OgeZNtIf z7jN1f!~RLT6~!eTpHeAPD>~zpj={9H3zPSqPZ4uARoVfA54y!YwP Rehmg7@O1TaS?83{1OV2w2u1(^ diff --git a/assets/buildings/helipad/helipad_shell.png b/assets/buildings/helipad/helipad_shell.png index f153775d123605454b53bb80b66ff35d4a403a7b..77bc0af66ea942dedcbd4477252b47d90866cbc9 100644 GIT binary patch delta 3522 zcmZuzcRbbK|9|5qbaCZoTtXR9*9aNe1q^ z(Ipu-vNJ2|Qbsa<@8AF5*B|F`{yOJ%&g;2yg&zt&@&(xmSbZIfh=R4kXcK$uBFcx! zl-h^vW8Yom5J(|*gaYiEuJKS~XX!)6Po%;Snl0-U1zI}3vGm)jUbW&HsrlI}+Ih?` zQhvyli`8$3{2Cj+y_PPq914;2x}PP^;d9zNOG2@yi@k=mC*XTqD=4=1Swd-Sbac#f zeR(EYXa=0GT_-OetZz6lUHu;gvXR8?P%?x)nBu{Y<>~{+KwN=fUY(AFy>_D<{C9IpOH1Jmt;5DVm!~Id1mMgT*46^* zLN~Yuev8+mcO`W2eTZHjgt(d{A?j^w>y!y1Q=A(XpPrr`LLlCSJ@;K)sPMSLr)`d; zO?~}}SK@g{{In%^DgSZa_B}1Gvi+?f?mzb z%X@*uok2;wS$@4PL8M?I@`wW9xrcCY5}3d+Q|h&E;qLCfRGOjr$t?Sql-5NtY{$>x za&o10?PmgUjBPeZSIr^WO@JOtAZmKvxualhVWIybX*trw)bt#J#W^sLi$IJMVc~md zFy^DQu(;UnsVFn?`OTeC-Qt)n)=PxjC*$HHP7-t6Q1saRvW$)KH+DK$t)~nPizNp$iU^#XPc({CYu78l%BCe9lorpy4UMQ7+YUh z5Q~bAw#6aC8C9w`_lW0hnMb}T#+E@~sJD1vh=4UY$UI0-C)U+*sfDe^4gZ8;4IEo~ z>mOXQu9;oveat5)sPFDBuH-)rJ_tDHGpokEguzWR&w_JjZK}jN0Rhut>xuF4pifk) z=*~u1^We-(Mo*7{`tD@#f4#l;$)$OD{4KlF(aka<1iIi#paC{qB_+3;>^+NT?ssI|Hs3 zsst^t*yLbvxIw1HprD{3yobk6XE_^j>ehy3Xj#^i>2vFspY``oy!B1n%NB%guC{+i z|7!1FQdVa0_SJe8J~rV_og$~5YgZ(wYkmPC9x!7 zZvFnPaNf6GU5L}b&~S5qrFQ;^ciqlK5w-cNvi5dNjG$BOHjQZ%I>qJPL^Vw30HX`L z=kfwBaxE)nGt*Fr^&gc$Og%cf+p;&8X48N-)lG84dpjrK z3{2-E_`*2%b@+zk!xv~%5049NdvmAIGBTP0zQbjv_)1z7y=Z3uo7Dm_IRyw|w9!-$ zVQy^c4;xlI4D<7o8UFIcS?c0NMpM~iw7}W3-5ni_j**LJ*k9-yT3hq#(B4PyuD{GGTc>R7ifUAP!dYfGNx&;CK58=s%eEiEM@V<3V^B@1D*#>m0tc_OJyz(}_d zqL`sskmF>PRpl>cmGt2l3Mg<1;9DuIx5OW2XVXRMwS@csZ*EL)de%)G&m<`r{6nD3jzUS z(9qEEk>fkK2I8{yHa%0-kmsmdxT0laS*NyxM^k>v5H)%%oN!2o_aUs(($bqo_w&MM zVtG|nRbNl6;YRZc3cBiCDK3B@eK(NFC~*BZ3~H#9cy6N{7A*kU{O&~o%H#u?zWmN?CG7} zhePeatStmgV;r&&-;k%AXTmn{TVGF4uP2#ZpkpWed&dd7dIr-;4o~z2`P$YU6om1m z{%68XN>{I{7ONJTqjRM9-AJo9@pMGfhD z^BI&ks)Vk|NkPYm?+3rv@Apms^6KZ3pC#C^e7anBZmva1z~5kHJHgYFdQX* zsW4wfg1RM<<30-6fy`|fT2_`5qPJm&P&b_}XJl+_DUH(*;+&3{XOG$Yo&tp+Ok`wa zS3TrZ1v48P;1l=1Z=R|V65Yg>@q>!7Z^&d-|HJ)l;~iP5yo_T@YGx)^c5bdKCH?Hn z+FC;cgN5J;G6A+3mRL_ukD0xF+W7dm_~^c?t7{3A+WzdcE=;P@L~rWU4-HpJ z5w1=Q4sy{hut1pt(jhrbO%5oC6ch*|d3jy?^T8`}c_y-hU`6o_H%861W@V{niAm{1d5`A08HOGPzu6kG^I=cuUtW^Q?+WCBqV z@=}{>D>n}h!@|tVmoLY+wY8nVA&X&j@~6NqOnru=hQV-%e{gVvJNf6eJ5cl4N8r&> zBn~-|NfH*m*2VzLlDzgu^f)!Lx5r#F__+_mjF1>O93C)QbE{btYktZqpqo40LJk1x zq3lUAblj-x;G7H~5g2B+kQki*_}We%G#c+Pvx$}M zxxPGw)jxki;+FpwGpN*HJ3-VVZ)PA|%aX1DW!EP~MSc~Pl?tOHBQJ+k<>gPK`1xIU zd3YF0%znh7sT+VBue_TC7AKC!0tvZ_3?*d)qu~1YVY{q%*DB4Ue##o z2R*{!p0+oNF3lE4g?GN>IF^TtGBhP1kJ3Fa3IM>}^mz-}G!-ztlp&_HM5rGd%2eiN z%S`Plx~r(A#fibW{b24&(jES@>>ZRMAt9liwcte>+l^npKw}3efhkbAI@WS>at>^& zgDU?Yj~Cg2F9IyEgu2NS5XK=NVgQ82ujeRLF*6~tS$DTKDZ++N4#Zg)*Pp}+NogJe z6@UAiz<@~+mfKSc3k&<7J{jrR+3m$bA|G*lxXWvkbEs^a12%M^EbHvx(DQ}a66pW! z?L~ZlAG!kHE$99`Ffcz>=epY0*C!lNw4u*ddwBfR0**mrP#D}lh88m%F4M})%$afh zD86%hWmFG1!e)_}Y{a!RU+=^Bas&Y_c{M(`J)n)acg!3BtE9`Cg#3>>QrvT56*$0t SV=w6gpu%FV>(}TyC;T5t<(m%x delta 3919 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 J7Mr<8{tunYe?kBN diff --git a/assets/svg/buildings/helipad.svg b/assets/svg/buildings/helipad.svg index 958979f..ae7b8d2 100644 --- a/assets/svg/buildings/helipad.svg +++ b/assets/svg/buildings/helipad.svg @@ -16,7 +16,7 @@ id="svg134" sodipodi:docname="helipad.svg" inkscape:version="0.92.4 5da689c313, 2019-01-14" - inkscape:export-filename="/home/cyberarm/Code/i-mic-rts/assets/buildings/helipad/helipad_overlay.png" + inkscape:export-filename="/home/cyberarm/Code/i-mic-rts/assets/buildings/helipad/helipad_shell.png" inkscape:export-xdpi="96" inkscape:export-ydpi="96"> + inkscape:window-maximized="1"> + + @@ -83,7 +88,7 @@ image/svg+xml - + @@ -94,53 +99,56 @@ transform="translate(0,-271.60001)"> - - - - - + + + + + + + diff --git a/lib/entities/buildings/barracks.rb b/lib/entities/buildings/barracks.rb new file mode 100644 index 0000000..240bbb6 --- /dev/null +++ b/lib/entities/buildings/barracks.rb @@ -0,0 +1,9 @@ +IMICRTS::Entity.define_entity(:barracks, :building, 400, "Builds and soldiers") do |entity| + entity.radius = 44 + entity.max_health = 100.0 + + entity.shell_image = "buildings/barracks/barracks.png" + + entity.on_tick do + end +end diff --git a/lib/entities/buildings/helipad.rb b/lib/entities/buildings/helipad.rb new file mode 100644 index 0000000..0f75e8d --- /dev/null +++ b/lib/entities/buildings/helipad.rb @@ -0,0 +1,10 @@ +IMICRTS::Entity.define_entity(:helipad, :building, 1_000, "Builds and rearms helicopters") do |entity| + entity.radius = 26 + entity.max_health = 100.0 + + entity.shell_image = "buildings/helipad/helipad_shell.png" + entity.overlay_image = "buildings/helipad/helipad_overlay.png" + + entity.on_tick do + end +end diff --git a/lib/entity.rb b/lib/entity.rb index 8451578..8bf471e 100644 --- a/lib/entity.rb +++ b/lib/entity.rb @@ -46,6 +46,7 @@ class IMICRTS raise "Failed to find entity #{name.inspect} definition" end + @boid_radius = @radius + 8 component(:turret).angle = @angle if component(:turret) @goal_color = Gosu::Color.argb(175, 25, 200, 25) @@ -149,6 +150,7 @@ class IMICRTS def draw_radius Gosu.draw_circle(@position.x, @position.y, @radius, ZOrder::ENTITY_RADIUS, @player.color, 360 / 18) + Gosu.draw_circle(@position.x, @position.y, @boid_radius, ZOrder::ENTITY_RADIUS, @player.color, 360 / 18) end def draw_gizmos diff --git a/lib/states/closing.rb b/lib/states/closing.rb index 7217091..7842f1c 100644 --- a/lib/states/closing.rb +++ b/lib/states/closing.rb @@ -1,6 +1,7 @@ class IMICRTS class Closing < CyberarmEngine::GuiState def setup + window.show_cursor = false @logo = Gosu::Image.new("#{ASSETS_PATH}/logo.png") @color = Gosu::Color.new(0xffffffff) diff --git a/lib/states/game.rb b/lib/states/game.rb index 685ef02..48e1e9e 100644 --- a/lib/states/game.rb +++ b/lib/states/game.rb @@ -107,6 +107,22 @@ class IMICRTS position: CyberarmEngine::Vector.new(spawnpoint.x + 130, spawnpoint.y - 64, ZOrder::BUILDING), angle: 0 ) + @player.entities << Entity.new( + name: :helipad, + director: @director, + player: @player, + id: @player.next_entity_id, + position: CyberarmEngine::Vector.new(spawnpoint.x - 32, spawnpoint.y - 96, ZOrder::BUILDING), + angle: 0 + ) + @player.entities << Entity.new( + name: :barracks, + director: @director, + player: @player, + id: @player.next_entity_id, + position: CyberarmEngine::Vector.new(spawnpoint.x - 32, spawnpoint.y + 128, ZOrder::BUILDING), + angle: 0 + ) end def draw