Maescool / Catacomb-Snatch

Mojang's Humble bundle source
Other
295 stars 99 forks source link

Soldiers #900

Closed Delvar closed 12 years ago

Delvar commented 12 years ago

Ok i think im done here. need to set proper prices for the upgrades and maybe tweak speeds etc. but thats just balancing and im not sure im best place to do that.

hopefully my branch isn't too much of a mess :)

master-lincoln commented 12 years ago

Could you please describe what you did here in detail.

Some impressions:

PS: Congratulations...this is the 900. issue!

Delvar commented 12 years ago

cool :) right what i did...

master-lincoln commented 12 years ago

I think I will need some more time to look through this. But on the first view it looked really awesome. Thanks for the details...sounds thought through to me.

Delvar commented 12 years ago

cool, just remeber you need to set teh correct price on the upgrades 20/50 now which is far too low :)

master-lincoln commented 12 years ago

Could remove commented code lines? (if they could be valuable for later please add a short description in the code) Since your Pather class could be used for other applications later it would be nice if you would fill out the javadocs so people know whats going on.

And: Does this also work in multiplayer?

Delvar commented 12 years ago

ok ill remove the unneeded code, its mainly old revisions of the path code i was switching between to see the improvements, the older ones are useless really. there are a couple other places where i commented out existing code ill comment them and reasons for removal.

ah ok, ill look up java doc.

Delvar commented 12 years ago

how is this? https://github.com/Delvar/Catacomb-Snatch/commit/031422e1a1663e100a9f808426ba972472e54471

Seyjin commented 12 years ago

I would see more a robot that fights melee.

Delvar commented 12 years ago

that would be easy enough to add, maybe allow the user to buy a Robot factory that produces robots like a spawner, maybe limit he number of robots based on player level or upgrades to the factory.

you could easily use Pather and overload the tryToMove() method so instead of Avoiding Mobs heads towards them.

i might work on that after this is finished.

Delvar commented 12 years ago

maybe something like this on wheels or merged with rail droid, http://www.pixeljoint.com/pixelart/68370.htm

ghost commented 12 years ago

just awesome =D +1

Delvar commented 12 years ago

Ok i think im done, let me know if there is something missing etc.

Delvar commented 12 years ago

here is a video of it in action: http://youtu.be/5WOc9y3c4Kw

algreat commented 12 years ago

This is awesome.

Few things. No way am I trying to take away from what you did. just offering a few suggestions/comments.

I noticed that the hostile mobs (mummies) do not target your robots. That may be something that gets looked into as they are being attacked and not retaliating. Also, maybe some logic to the robots where they don't keep running away while shooting so that they completely destroy targets.

Delvar commented 12 years ago

no problem the more ideas the better!

yeah i think the mobs only lock onto players..ill check it out.

as for destroying targets, thats a bit difficult, i found when i did that that and the level gets more crowded they end up just staying in a very small part of the map and not really moving around much as they always see a mob, true they killed everything that came near but they just end up camping too much.it made them completely unable to follow the player.

it worked fine with only a few mobs though so i wonder if there is a trade off to be made or maybe another mode 'Collect Coins', 'Kill Spawners', 'Kill Players' etc.. but i wanted to keep it simple..hehe

what do you think?

algreat commented 12 years ago

How about they stop to kill things that are less than x health. That way they don't stop to kill everything. I am not sure if they would have any visibility to the targets health.

Delvar commented 12 years ago

hmm i might just do that see how it affects them. if the Mob has < 25% health stop and shoot them. should be easy to add really. well as teh player can see teh health of mobs i think it only right that Soldiers can too :).

Maescool commented 12 years ago

@Delvar if you have done that last, make sure you sync up, can't merge anymore at this point

Flafla2 commented 12 years ago

Honestly, I would make the soldiers WAY more expensive(I think around 2000 coins). A level 3 turret on normal costs 1650 coins. Having the soldier be less than that is ridiculous. It would effectively render turrets useless, IMHO.

Delvar commented 12 years ago

@Maescool iv not had time to work on them yet, whats in branch is still latest code i may have a play Monday night and see if it makes them any better, ill let you know.

@Flafla2 yeah the cost is a bit low, but not sure i agree they make turrets useless, as they either 1. move all over the map 2. flow the player they never just stand still like a turret, so for instance you cant use them to guard your base at all.

what prices would you guys think reasonable? level 1: 2K, level 2:4K, level 3:6K? or higher?

Delvar commented 12 years ago

well i did all the suggested mods but have an issue with GIt when i try to push to my guthub about Cherry picks with more than 1 parent or something. im getting fed up with GIT i tell you. i spend more time trying to get it to play nice than i do actually writing code.

when i finally get a push to work ill let you know.

Delvar commented 12 years ago

ok no idea what i id but i can now push shit up. yay!

well i just deleted the lot by mistake, then pushed up my local copy in full. anyway seems to work now hope i didn't break things too much for you guys... im getting to really hate GIT.

Delvar commented 12 years ago

looks like i lost everything i did tonight. nm. :(

Delvar commented 12 years ago

hmm its doing it again even though iv not done any changes locally.

im going to try updating eclipse and see if that helps.

Maescool commented 12 years ago

Every time you do changes in git, make sure you refresh your project in eclipse, else you get strange behavior.

Verstuurd vanaf mijn iPhone

Op 20-mrt.-2012 om 22:57 heeft Morgan Gilroy reply@reply.github.com het volgende geschreven:

hmm its doing it again even though iv not done any changes locally.

im going to try updating eclipse and see if that helps.


Reply to this email directly or view it on GitHub: https://github.com/Maescool/Catacomb-Snatch/pull/900#issuecomment-4606327

Delvar commented 12 years ago

i found the issue after updating i had a stupid merge thing about 3 commits in, no idea why i did it, no idea at all. thankfully the updated eGit told me the commit id so i found it pretty quick after.

i branched my code, then cherry picked everything apart from that one bad commit. then rebased off develop. then deleted my old code branch. deleted the entire branch from local and github renamed my new branch Soldiers commited.

done. lol

all part of leaning i guess, feel so retarded right now. anyway back to makign them focus on Mobs now... at least i know what to do.

thanks for the pointers guys.

Delvar commented 12 years ago

OK added the ability for Soldiers to focus and move towards Mobs, http://youtu.be/cbQbeK-lNeM logic: Soldiers lock onto the closest target, they only change target when that target is dead, out of range or another target comes very within 16 pixels. this stops them switching targets all the time but means if a Mob is very close and likely to hit the Soldier will at least try to shoot it or last of all if the target is a Building and the closest enemy is a HostileMob.

If the target is below a set % health then the Soldier will move closer to the target to about 1 tile width away. this helps to kill the mob but also collecting coins. the % health depends on the mode the Soldier is in, on Patrol its 70%, on Follow its 40% on Returning Home its 0% (ie don't try to move towards targets)

when its not moving close to targets it will continue to path as normal.

any other suggestions?

Delvar commented 12 years ago

oh and it seems multiplayer safe when i tested it local. id appreciate if someone else could test it properly please! :)

Maescool commented 12 years ago

I quickly skimmed through the changes.. looks like you did some refactoring and some AI improvements as also fixed up some harvester things looks good for me Can someone else confirm? :)

Maescool commented 12 years ago

@Delvar can you fix this one? :)

Delvar commented 12 years ago

sure, i think it will just conflict on a few things as you just pulled my droids one :)

Maescool commented 12 years ago

Of te record, can you join the irc chat? easier to communicate from time to time :) (yes the chat is a lot quiet, but i'm most of time keeping an eye on it)

Delvar commented 12 years ago

IRC sure, ill get on in a sec, just going to get a client.

think iv merged everything ok, made a mistake that i fixed with the last commit. tested it and everything seems to work.

Flafla2 commented 12 years ago

So... is this going to get pulled or closed? This pull has been idle for 11 days now...

master-lincoln commented 12 years ago

Sorry @Flafla2 but it has been generally quiet here the last 2 weeks... To continue the discussion: Even if we are not sure if we want to have this feature as implemented here, this is still a good code base and we could simply remove the item from the base area so you can't buy it. So +1 from me

PS: would need to be synced again PPS: 11 days is nothing in other projects!

kylecbrodie commented 12 years ago

Yeah I've just been busy with school because it is coming to the end of the year, but soon we will regain some momentum and push this game further to an official (are we official) release.

Flafla2 commented 12 years ago

OK, great, I am just new to GitHub and it is hard to know how patient I should be. :P

Delvar commented 12 years ago

yeah iv been ill and busy the last couple weeks and not had the time to dedicate to sync it up properly. im working on it tonight.

Delvar commented 12 years ago

ok im doing something bad now ... i tried to rebase but due to the age of this code and so many changes in upstream it took over 3 hours and i didn't complete it. so iv created a branch Soldiers004 locally and im cherry picking each update at a time and fixing it so i can break the process down into manageable chunks. ill force an update here when im done, hopefully it can be pulled shortly after and i dont have to do this again. a lot of my commits are to fix issues with rebasing as to get this working i had to modify a lot of the existing classes.

Delvar commented 12 years ago

Ok all done and up to date, i couldn't figure out how to add the ship to the level so i hacked it in on my local copy to test. the hack was not committed. so someone else can do that or tell me how to.

master-lincoln commented 12 years ago

Thanks for the efforts! I suppose you mean shop not ship?

Delvar commented 12 years ago

lol yeah SHOP :)

Maescool commented 12 years ago

@Delvar the person who knows best is @LordOfMaps

Delvar commented 12 years ago

ok how do i contact him? i cant seem to see a way via github.. and iv not seen him on irc. i really dont want to have to go though this all again due to it being so out of date.

master-lincoln commented 12 years ago

Don't worry, your PR is still in sync. We don't have many changes currently. About the ShopItem: Quickly looking into it, it seems it has to be hard-coded into every map. It would be sufficient to have it in the dev-map for now. Additionally an item could be added to the tileset sprites. But this could also be done later imho.

Delvar commented 12 years ago

ok cool ill do that then, shouldnt take too long to do :)

Delvar commented 12 years ago

from what i can see in he level load it uses binary data wrapped in xml.. NASTY! i think it should use xml all the way and simply use reflection to create the entities like a bean... ie <entity class="ShopItemSoldier"> <team Type="Integer" Value="1" /> <pos Type="Vec2" x="43" y="50" /> </entity> then the loader simply creates teh class then loops though calling the matching setters to setup the class, finaly add to the level .. :)

master-lincoln commented 12 years ago

It's not nasty...we use a program called Tiled to create maps in this format. PS: You didn't really think github would have such an easy XSS undiscoverd ^^

Delvar commented 12 years ago

hmm i hate mixing binary data in xml, the whole idea of xml is to be portable binary data isn't portable. hehe well i just tried it anyway as it stripped out my XML tags instead of auto escaping them :)

master-lincoln commented 12 years ago

It's not really binary data. Just a compressed version of a different encoding. The biggest part of a map is a 2d array of the used tiles in each layer. So why not choose a more efficient presentation for that? It's still portable, just not human readable. The specification can be found here. One of the biggest drawbacks of XML is it's memory wasting presentation. XML compression will become more common in the future if you ask me...