From 1ee935e406b048277d68d290847fdcf5755508be Mon Sep 17 00:00:00 2001 From: SilicaAndPina <earsyum@gmail.com> Date: Thu, 10 Sep 2020 11:53:11 +1200 Subject: [PATCH] Fix crafting --- Spaceinator.project.gmx | 4 +- objects/obj_bullet.object.gmx | 50 +++---- objects/obj_crafting.object.gmx | 191 +++++++++++++++++++++++++++ objects/obj_inventory.object.gmx | 26 ++++ objects/obj_player.object.gmx | 68 +++++----- sprites/images/spr_broken_ship_0.png | Bin 327 -> 346 bytes 6 files changed, 279 insertions(+), 60 deletions(-) create mode 100644 objects/obj_crafting.object.gmx diff --git a/Spaceinator.project.gmx b/Spaceinator.project.gmx index cc42410..b3ad1a6 100644 --- a/Spaceinator.project.gmx +++ b/Spaceinator.project.gmx @@ -3,6 +3,7 @@ <Configs name="configs"> <Config>Configs\Default</Config> </Configs> + <datafiles number="1" name="datafiles"/> <NewExtensions/> <sounds name="sound"> <sound>sound\snd_engine</sound> @@ -13,7 +14,6 @@ <sprite>sprites\spr_player</sprite> <sprite>sprites\spr_bullets</sprite> <sprite>sprites\spr_blocks</sprite> - <sprite>sprites\spr_blackhole</sprite> <sprite>sprites\spr_broken_ship</sprite> <sprite>sprites\spr_asteroid</sprite> <sprite>sprites\spr_boom</sprite> @@ -24,6 +24,7 @@ <sprite>sprites\spr_hotbar</sprite> <sprite>sprites\spr_intentory</sprite> <sprite>sprites\spr_crafting</sprite> + <sprite>sprites\spr_blackhole</sprite> <sprite>sprites\spr_final</sprite> </sprites> </sprites> @@ -61,6 +62,7 @@ <object>objects\obj_exit</object> <object>objects\obj_gameover_overlay</object> <object>objects\obj_inventory</object> + <object>objects\obj_crafting</object> <object>objects\obj_hotbar</object> </objects> <objects name="items"> diff --git a/objects/obj_bullet.object.gmx b/objects/obj_bullet.object.gmx index 3da98d7..6c8bcc4 100644 --- a/objects/obj_bullet.object.gmx +++ b/objects/obj_bullet.object.gmx @@ -57,31 +57,6 @@ if(step_counter == 60*room_speed || instance_position(x,y,obj_chunk) == noone) { instance_destroy(self); } -</string> - </argument> - </arguments> - </action> - </event> - <event eventtype="4" ename="obj_broken_ship"> - <action> - <libid>1</libid> - <id>603</id> - <kind>7</kind> - <userelative>0</userelative> - <isquestion>0</isquestion> - <useapplyto>-1</useapplyto> - <exetype>2</exetype> - <functionname></functionname> - <codestring></codestring> - <whoName>self</whoName> - <relative>0</relative> - <isnot>0</isnot> - <arguments> - <argument> - <kind>1</kind> - <string>instance_destroy(other); -instance_create(other.x,other.y,obj_boom_fx) -instance_destroy(id); </string> </argument> </arguments> @@ -128,6 +103,31 @@ instance_destroy(id); <isnot>0</isnot> </action> </event> + <event eventtype="4" ename="obj_broken_ship"> + <action> + <libid>1</libid> + <id>603</id> + <kind>7</kind> + <userelative>0</userelative> + <isquestion>0</isquestion> + <useapplyto>-1</useapplyto> + <exetype>2</exetype> + <functionname></functionname> + <codestring></codestring> + <whoName>self</whoName> + <relative>0</relative> + <isnot>0</isnot> + <arguments> + <argument> + <kind>1</kind> + <string>instance_destroy(other); +instance_create(other.x,other.y,obj_boom_fx) +instance_destroy(id); +</string> + </argument> + </arguments> + </action> + </event> <event eventtype="4" ename="obj_asteriod"> <action> <libid>1</libid> diff --git a/objects/obj_crafting.object.gmx b/objects/obj_crafting.object.gmx new file mode 100644 index 0000000..7e7bc14 --- /dev/null +++ b/objects/obj_crafting.object.gmx @@ -0,0 +1,191 @@ +<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!--> +<object> + <spriteName>spr_crafting</spriteName> + <solid>0</solid> + <visible>-1</visible> + <depth>-4000</depth> + <persistent>0</persistent> + <parentName><undefined></parentName> + <maskName><undefined></maskName> + <events> + <event eventtype="0" enumb="0"> + <action> + <libid>1</libid> + <id>603</id> + <kind>7</kind> + <userelative>0</userelative> + <isquestion>0</isquestion> + <useapplyto>-1</useapplyto> + <exetype>2</exetype> + <functionname></functionname> + <codestring></codestring> + <whoName>self</whoName> + <relative>0</relative> + <isnot>0</isnot> + <arguments> + <argument> + <kind>1</kind> + <string>selected_slot = 0; + +move_slot = false; +selected_item = 0; +selected_total = 0; +</string> + </argument> + </arguments> + </action> + </event> + <event eventtype="3" enumb="0"> + <action> + <libid>1</libid> + <id>603</id> + <kind>7</kind> + <userelative>0</userelative> + <isquestion>0</isquestion> + <useapplyto>-1</useapplyto> + <exetype>2</exetype> + <functionname></functionname> + <codestring></codestring> + <whoName>self</whoName> + <relative>0</relative> + <isnot>0</isnot> + <arguments> + <argument> + <kind>1</kind> + <string>x = view_xview[0]+view_wview[0]/2 - (424/2); +y = view_yview[0]+view_hview[0]/2 - (254/2) - 200; + + +var i = 0; +if((mouse_x >= x && mouse_x <= x+140) && (mouse_y >= y && mouse_y <= y+140)) +{ + for(yy = 8; yy < (5*44); yy+=45) + { + for(xx = 6; xx < (9*45); xx+=45+1) + { + if((mouse_x >= x+xx && mouse_x <= x+xx+45) && (mouse_y >= y+yy && mouse_y <= y+yy+45)) + { + selected_slot = i; + } + i++; + } + } + +} +</string> + </argument> + </arguments> + </action> + </event> + <event eventtype="6" enumb="4"> + <action> + <libid>1</libid> + <id>603</id> + <kind>7</kind> + <userelative>0</userelative> + <isquestion>0</isquestion> + <useapplyto>-1</useapplyto> + <exetype>2</exetype> + <functionname></functionname> + <codestring></codestring> + <whoName>self</whoName> + <relative>0</relative> + <isnot>0</isnot> + <arguments> + <argument> + <kind>1</kind> + <string>if(!move_slot) +{ + selected_item = obj_inv_controller.inventory[selected_slot]; + if(selected_item == 0) + return false; + selected_total = obj_inv_controller.inventoryCount[selected_slot]; + obj_inv_controller.inventory[selected_slot] = 0; + obj_inv_controller.inventoryCount[selected_slot] = 0; + move_slot = true; +} +else +{ + if(obj_inv_controller.inventory[selected_slot] == 0) + { + + obj_inv_controller.inventory[selected_slot] = selected_item; + obj_inv_controller.inventoryCount[selected_slot] = selected_total; + + move_slot = false; + selected_item = 0; + + } +} +</string> + </argument> + </arguments> + </action> + </event> + <event eventtype="8" enumb="0"> + <action> + <libid>1</libid> + <id>603</id> + <kind>7</kind> + <userelative>0</userelative> + <isquestion>0</isquestion> + <useapplyto>-1</useapplyto> + <exetype>2</exetype> + <functionname></functionname> + <codestring></codestring> + <whoName>self</whoName> + <relative>0</relative> + <isnot>0</isnot> + <arguments> + <argument> + <kind>1</kind> + <string>draw_self(); +var xx = 6; +var yy = 8; +var i = 0; +for(yy = 8; yy < (5*44); yy+=45) +{ + for(xx = 6; xx < (9*45); xx+=45+1) + { + if(i == selected_slot) + { + draw_set_color(make_colour_rgb(100,100,100)); + draw_rectangle(x+xx,y+yy,x+xx+45,y+yy+44,false) + } + + draw_sprite(spr_blocks,obj_inv_controller.inventory[i],x+xx+6,y+yy+7); + var count = obj_inv_controller.inventoryCount[i]; + + var xoffset = string_width(string(count)) + if(count > 1) + { + draw_set_color(c_white); + draw_text(x+xx+45-xoffset,y+yy+30,string(count)); + } + i++ + } +} + +if(selected_item != 0) +{ + draw_sprite(spr_blocks,selected_item,mouse_x-(TILE_SIZE/2),mouse_y-(TILE_SIZE/2)); +} +</string> + </argument> + </arguments> + </action> + </event> + </events> + <PhysicsObject>0</PhysicsObject> + <PhysicsObjectSensor>0</PhysicsObjectSensor> + <PhysicsObjectShape>0</PhysicsObjectShape> + <PhysicsObjectDensity>0.5</PhysicsObjectDensity> + <PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution> + <PhysicsObjectGroup>0</PhysicsObjectGroup> + <PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping> + <PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping> + <PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction> + <PhysicsObjectAwake>-1</PhysicsObjectAwake> + <PhysicsObjectKinematic>0</PhysicsObjectKinematic> + <PhysicsShapePoints/> +</object> diff --git a/objects/obj_inventory.object.gmx b/objects/obj_inventory.object.gmx index 800be95..b6de0e8 100644 --- a/objects/obj_inventory.object.gmx +++ b/objects/obj_inventory.object.gmx @@ -30,6 +30,32 @@ move_slot = false; selected_item = 0; selected_total = 0; + +crafting_menu = instance_create(0,0,obj_crafting); + +</string> + </argument> + </arguments> + </action> + </event> + <event eventtype="1" enumb="0"> + <action> + <libid>1</libid> + <id>603</id> + <kind>7</kind> + <userelative>0</userelative> + <isquestion>0</isquestion> + <useapplyto>-1</useapplyto> + <exetype>2</exetype> + <functionname></functionname> + <codestring></codestring> + <whoName>self</whoName> + <relative>0</relative> + <isnot>0</isnot> + <arguments> + <argument> + <kind>1</kind> + <string>instance_destroy(crafting_menu); </string> </argument> </arguments> diff --git a/objects/obj_player.object.gmx b/objects/obj_player.object.gmx index 0307686..06a4111 100644 --- a/objects/obj_player.object.gmx +++ b/objects/obj_player.object.gmx @@ -258,40 +258,6 @@ if((mouse_check_button_pressed(mb_left) && os_type != os_psvita) || game } -</string> - </argument> - </arguments> - </action> - </event> - <event eventtype="4" ename="obj_broken_ship"> - <action> - <libid>1</libid> - <id>603</id> - <kind>7</kind> - <userelative>0</userelative> - <isquestion>0</isquestion> - <useapplyto>-1</useapplyto> - <exetype>2</exetype> - <functionname></functionname> - <codestring></codestring> - <whoName>self</whoName> - <relative>0</relative> - <isnot>0</isnot> - <arguments> - <argument> - <kind>1</kind> - <string>damage_player(5); - -instance_create(other.x,other.y,obj_boom_fx); -other.direction = direction; -other.image_angle = image_angle; -other.speed = 20; - -speed = -20; - - - - </string> </argument> </arguments> @@ -370,6 +336,40 @@ if(didAdd) <argument> <kind>1</kind> <string>damage_player(hp_max); +</string> + </argument> + </arguments> + </action> + </event> + <event eventtype="4" ename="obj_broken_ship"> + <action> + <libid>1</libid> + <id>603</id> + <kind>7</kind> + <userelative>0</userelative> + <isquestion>0</isquestion> + <useapplyto>-1</useapplyto> + <exetype>2</exetype> + <functionname></functionname> + <codestring></codestring> + <whoName>self</whoName> + <relative>0</relative> + <isnot>0</isnot> + <arguments> + <argument> + <kind>1</kind> + <string>damage_player(5); + +instance_create(other.x,other.y,obj_boom_fx); +other.direction = direction; +other.image_angle = image_angle; +other.speed = 20; + +speed = -20; + + + + </string> </argument> </arguments> diff --git a/sprites/images/spr_broken_ship_0.png b/sprites/images/spr_broken_ship_0.png index da20d495a8b1f70a096fccceed79097f39a77b6b..5cb114aba4d54a6cb6998c262ff8163107fb82ea 100644 GIT binary patch delta 330 zcmX@kbc<<%WIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$g*fKP}k zkZy2rXaE8Rh64u<Ebs+#fnp5JDsqBAilZdRFZe$MFx+e28wnKSEbxddW?<ku48n}Z z^H-z*1-E;;IEGmGU%ePz&)1^B!y4e7dGmkY-r5ceCgc6Zo>vZeYE*2||H(U{{#<fH zhO&%EUy>NZs#Il$9oKd-pII6b*R@zMyeD-w!;v!<9s-%K-p^yv>sitK@QyggAz#-& zNxKXt99q1jqOQr2h2dl=!(+SWJ00w|-922*t#Vzq=Vrr=Ox`u&9h@ilE;w)Nl;n7L zmG_?b)KZ2ssk{u0J9Ts;uB!`76-;nTW%<}FH}Us;X@Q<po}AC@3$_Zo2#Xyw(VQm+ P^aO*atDnm{r-UW|&LMnF delta 311 zcmV-70m%N^0>=W78Gi-<0047(dh`GQ0S-w-K~#90?bcxqg&+t3V2;+&I9fNeG;n6J z0GaJ=&yDpb<crh-_>XSjwxv&tb9@Ha_dOxNdH@$M0L1l(T#y0FyO4{OIG?-)EJKuq zM;&Od%NAo@{oDyE{<bSJwB(<i^A|@P0|p4X=K<hr|3LEq34cOsqwE%1H+^v%qMKYD z8{=fK9biF7fCi!i^lgp;Tw7ZSU_`_#a09HN0K8Y%0HoKm1Ta1ef&p)5z=eEn*HD0r zfJbNn5eHGdX9y7ho<FOaL_Z@av~LK3ZY$?GTmU-THGf1Rq@Bn5Id1{#oKYC(xC2sh zCEoz&9FW622{0w1C%GN&If4N04%Fha9bkkjDWLe&n127iHV%X0lcV5aLrVYv002ov JPDHLkV1mntf>Hng