Code Monkey home page Code Monkey logo

kag-base's People

Contributors

1bardesign avatar alainx277 avatar andresian avatar asumagic avatar bunniewormy avatar catwiz avatar diprog avatar eps0003 avatar ferrezinhre avatar furai avatar fzzle avatar gingerbeard5773 avatar goldenguy avatar harrison-miller avatar hkgx avatar hobey avatar its-kos avatar matheusgodoi avatar mazey avatar monkeyfeats avatar mrpotatobird avatar mugg91 avatar nananas avatar ninuna avatar noahthelegend avatar panky123 avatar shylie avatar stolij avatar vam-jam avatar vicenteferrari avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kag-base's Issues

Large sprites disappear off-screen.

Currently, whenever you have a sprite larger than the current view, it can go invisible once the top (and possible other sides) go off-screen. I'm not sure if this is intentional, but it would be great if this could be fixed, or if intentional, then particularly large sprites could be double checked to make sure they aren't actually off screen first.

A variable where we can turn off the culling of a CSprite would be a good feature as well, as often times blobs that are meant to render the HUD can go off-screen causing the HUD to disappear.

[Feature Pitch] Tap inventory key as builder to switch to the previous selected block

When knight and archer tap F, it quickly cycles through their ammo options. It doesn't do anything for builder at the moment.

The ability to quickly cycle to the last block you were placing would make building some complex structures quite a bit more painless, as you wouldn't have to constantly keep holding f and trying to quickly seek very specific button locations with the cursor.

For experienced builders, selecting the right block is already kind of a reflex, so this might be even more welcomed by less experienced builders.

::isServer()and ::isClient()

One of the most common lines of code across kag base and mods is if(getNet().isServer()). Being able to call isServer() without getNet() would be a nice QoL improvement.

Feature pitch: builder wars

Introduction: When mechanisms got announced, they were going to be used for single player content and potentially a "builder wars" multiplayer gamemode. I'd like to see this implemented.
Idea:
-A builder-only gamemode which enables building mechanisms.

Example ruleset which does not necessarily has to be followed

-Players spawn on the edge of the map like in TTH for the first time
-Each team has a pile of gold blocks (like in classic) like this:
image
image
-There is a nobuild-zone at the gold (illustrated by the red area)
image
-No CTF shops except for builder shop, storage, tunnel and quarry
-You win by mining all of your enemies' gold
-No way to replenish your pile of gold
-125 seconds build time. 250 wood and 250 stone every 40 seconds, added to your existing inventory automatically. Every 60 seconds after buildtime, 500 wood and stone drops in a crate with a parachute (ala 2013 war) at the each team's gold pile.

Feature Pitch: Fix for all flags being captured by both teams

There have been many times when I have captured the flag only to discover that the other team has captured our flag. Usually you then have to store your flag in a catapult to not stand in base all round.

I propose a fix for this:

  1. Remove the ability to place flags in catapult.

  2. Make it so that a timer appears when all flags are captured by both teams. When the time runs out, both flags go back to their initial spots.
    screen-18-05-11-14-17-35

(I wrote 5 minutes, but maybe 3 or 2 minutes is a better idea)

Feature Pitch: Bloody tiles

Add variants for most tile types with varying degrees of bloodiness. Every time a character or corpse is hit, nearby floors, walls, doors etc. get sprayed with blood. repeated spraying results with progressively more bloody appearance. removable by using buckets of water, water bombs and arrows, and wet sponges.

this would affect gameplay in 2 ways:

  • a tile completely drenched with blood would be difficult to recognize, unless care is taken when designing sprites. this makes game harder
  • it would provide information where people die and how often. this makes game easier.

these two arent very significant and balance each other out, though maybe not perfectly. in any case turning blood on or off would be largely a matter of aesthetic preference, not a gameplay changer.

optionally add sooting from bomb explosions.
optionally make if affect bodies of water somehow

Broken mapcycle in tutorials and Save the Princess game mode.

Tutorials:

  • First green arrow loads the same map again (Tutorial01.png) and you can't complete the map after that at all (green arrow doesn't do anything).

Save the Princess:

  • First green arrow loads the same map again (Princess01.png), and then everything goes well.

Console logs haven't any errors or warnings.
screen-17-10-21-18-54-20

Add an extra button for knights that just eats food and doesn't light bombs

Suppose you have 3 bombs in your inventory and 1 burger.

You have 0.5 hearts left and are about to be gunned down by that archer.

There's currently 2 ways to get to the burger:

  • Spam press space bar, lighting all the bombs in the process.
  • Open your inventory and select the burger.

Both options are fairly slow and awkward, especially in the heat of battle. There are two ways this could be improved:

  • Space bar could prioritize burgers over bombs.
  • Alternatively a new key could be added. When pressed it would eat food from the inventory but not light bombs.

Camera not snapping to player on respawn in large maps

https://gyazo.com/6a92c90e2b8a5e7b446a7f7a096ac718
On large maps, if a player dies a very long way away from their respawn point, there seems to be next to no pull on the camera to make it move towards the player. This seems to be caused by the camera being so far away from the player. The user has complete control over the camera, more or less as if he were in spectator mode.
Though not much of an issue for standard CTF, TTH, and TDM maps, larger maps sometimes used in mods suffer can hugely from this.

Output message to console when server is finished starting

A simple message like ### Server Initialized ### should be output to the console when the server has loaded all mods and is ready to accept connections.

The idea is that you can look for the message inside a script and automatically connect clients when the server is ready, regardless of mods used, so the message should be hard-coded and not modifiable from mods or configs.

CBlob::getOldPosition()

Please add a a way to get a CBlobs position from the previous Tick changed for the current onTick() frame.

I have tried to use ShapeVars::oldpos but it is either buggy or is not the same.

This would allow people to override forces applied to the blob on that tick without setting it to be static.
It would be initialized as the blobs position and would be applied before the blobs new position is updated to avoid issues.

Feature Pitch: bomb bolt upgrade in TTH?

Ballistas aren't that powerful until you get the bomb bolt upgrade. leaving bomb bolts out of Take the Hall basically ruins the whole purpose of them, since halls are already more useful spawns then ballistas. I've tried fixing that but i'm stuck somewhere. Halp

AMD Relive

AMD Relive doesn't work with KAG, i suppose. Only if i record in Windowed mode or something similar. I think that Relive doesn't detect it. I'd would rather have to use a another recording software unless there would be any fix for this.. Okey after doing some research. I found out that it doesnt work with OpenGL games at the moment. So i suppose i will have to run the game borderlessly and then record. To my suprise. Oh, well. That neither seems to work, neither of them. I guess i will have to use Bandicam then.

CBlob::RenderForHUD() ignores CSpriteLayer Z levels

Currently, when you use RenderForHUD to draw a sprite, it pays no attention to the z level of it's sprite layers. This makes RenderForHUD rather useless in some cases where it could be very useful. It would be great if this could be fixed/added.

Manual Position clarification

Semi-Recently the manual was updated so that it includes the argument names of each function. I think this could be improved by updating all methods' position arguments to specify whether it requires tile position or world position.

Translations

I have discussed translation support a bit tonight with Fuzzle and decided to do some work to expand the translation support in KAG.

I believe it would bring some good advantages. It is easier for non-native people to understand (= potentially less retention). It also would allow making some official translations appear on Steam.
It could be possible to translate the steam shop page into other languages as well, I can translate it to french if you want.

I've done some work tonight to extend the translation support in KAG, see the changes on my repo (forgot to take it on a branch, I don't have time fixing it up tonight).
Some changes were less trivial than others. As for help support, e.g., I've taken the easy way and made a somewhat conservative way to perform the translation automatically (some helps translates manually). I didn't extensively try it, though, but it looks decent so far.

Though, I have a few questions:

  • Irrlicht GUI: Is Locales/zh_**.irrst supposed to work in Release? I didn't ever manage to make it spit out translated text (with a zh_FR.irrst file with the locale set as fr in autoconfig or with zh_EN.irrst with the locale set as en in autoconfig). I was writing it this way:
<entry id="PLAY">JOUER</entry>
<entry id="Create Account">Créer un compte</entry>

It also contains some outdated strings, it would be nice to make sure everything is up to be translatable not to miss out some stuff.

  • Is having partial translations OK? The polish translation seems to translate just a small batch of strings. I would rather progressively push up the newer translation support rather than all at once (to avoid some git merging nightmare considering how much scripts are affected). I suggest an option in the settings to select the locale and mark non-english as "experimental" support while fallbacking all current clients to EN.
  • How possible could it be to have blob inventory names/etc translated by the engine? This would ease out the translation support for sure, and I doubt there are scripts that relies on the inventory name (hopefully...)
  • Could it be possible to avoid ambiguous translations in the json file e.g. by allowing packing specific things in objects? For example in a case such as:
"scoreboard":
{
    "kills": "meurtres", // noun
    "deaths": "morts",
    // ...
}

"killfeed":
{
    "kills": "a tué" // verb
}```

- Edit: it also might be a solution to use a whole different translation system maybe.
It would be extra neat to have some way to way to format the text in the translations (e.g. `{0} has killed {1}`) since it might be complicated to translate some stuff with the same ordering as in english. I could probably implement it in angelscript directly though.

Player desync (knights only tho)

its really easy to do, and super powerfull. your desynced player can pass trough blobs (enemy dors for example) and even capture flags! too op, pls fix :(
Video showing how op this is: https://youtu.be/M2aCeUx51Qw
I think this could happend even to other classes, but it will be really hard to do.

MacOS has had fullscreen disabled for YEARS...

It's said it has been temporarily disabled on the setting when you launch the game for multiple years now. Is there a reasonable explanation why this issue hasn't been addressed? Such a basic feature...

Support for textures in various functions

A request that some functions that can currently only use sprites gain support for textures as well.

List of functions I'm aware of (or guessing from looking at the function) that don't have texture support:
CGridMenu::Addbutton()
CBlob::CreateGenericButton() (this may penitentially have texture support already, untested)
::AddIconToken()

Also, it'd be nice if blob inventory icons could have support for this as well (CBlob::inventoryIconName)

I'm not sure how much, or if any, of this is actually feasible, but it'd be great if any is

Archer Grapple Issue

If there is a solid tile against the top of a map, grappling up/out of the map registers a hit on said tile.

Continuing to grapple upwards whilst moving away from the wall allows you to grapple higher and higher. Once you have grappled really high above the map, moving back into the wall will cause your character to be propelled away, sometimes at very high speeds.

archergrapplebug3

overriding default tiles behaviours

Some default tiles have specific exclusive behaviours to them, that cant be disabeled if you want to make custom tiles:
Gold tiles have sparks, that cant be disabeled.
Ore tiles, when breaking, leave dirt background behind them.

Ill update the list if i find/remember something more.

Feature Pitch: Improve failure rate of knight animations

Knight animations don't always display properly. This is a major source of frustration for knight players, since it makes it extremely difficult to fight properly. Being killed from full health by someone who looks like they're just shielding is a negative experience, since it's almost impossible to play around. Over the past few builds it seems that the issue has worsened for some reason. I'd estimate that around 50% of 1v1 fights right now come with some kind of animation failure. The issue mostly affects competitive players who are interested in TDM, tournaments or the 1v1 format.

I'll summarize the main types of animation failure (video clips coming soon):

  1. A double slash appears as two jabs
  2. A single slash appears as one jab
  3. A double slash/slash occurs when someone appears to be shielding
  4. Idle animation plays while someone is charging a slash.
  5. Stun animation shows when someone is not actually stunned (often they are actually jabbing, or shielding). This can very easily lead to death: Suppose player A appears to be stunned but is actually shielding. Player B then thinks "ok - enemy is stunned, i'll jab them". However, since player A is actually shielding, player B then becomes stunned due to his jab and gets killed as a result.
  6. When joining a game (usually CTF) sometimes particularly players are stuck in the stun animation until they are killed. If they're not killed for a long time, this can be problematic. However this is the least important form of animation failure since it doesn't affect the game for long.

The fact that animation failure only seems to affect the knight class suggests that maybe fixing this doesn't require engine changes, just changes to the knight animation script. However this might not be true.

Some other points to note:

  • Often sounds will correctly play when animations don't. For example, in the case of failure type 4, the associated sound SwordSheath.ogg still plays at the correct time. I think this is quite an important point to note because obviously the client knows that the slash is occurring, or it wouldn't be able to play the correct sound. Obviously there are some cases where the client does not know the correct state of the game due to a laggy connection or packet loss etc. But in this instance that is not always the case.
  • The rate of animation failure seems to increase for players with worse ping, however the issue is still present even for players with extremely good ping (like 10ms).

It may be impossible to completely eliminate this issue, due to the inherent limitations of networked games. Fixing this will be a challenge, since the issue happens intermittently and without much pattern (so it seems). But hopefully we can significantly improve the rate of failure, particularly with cases where sounds play correctly but animations don't. Personally I feel this is the biggest issue in game at the moment.

Feature Pitch: Entering Crates

Older players remember this system. It was one of the best things in the entire game! But then it was removed because you could put people who were in the crates in the storage (there was nothing wrong with it, they could still suicide their way to freedom. So my idea is... Bring it back! It was so beautiful!

  • Add Crates to CTF in builder shop :)

force update and force render function for possible map wrap mod?

can a force update and force render function be added to kag?
it would be a good way to make mod where maps loop.
logic would go like this..

  • check if player is intersecting edge of map if so then..
  • update, collision and render
  • move player to other edge
  • update, collision and render
  • move player back

this would also require a camera edit too but i'm sure its possiable

Feature Pitch: Stone Quarry for CTF

Introduction: In CTF, it is very common to build a tree farm, which results in infinite wood throughout the game. Stone and gold, on the other hand, are not endlessly available and you do not always know where these resources are. This is where the stone quarry comes in.
Idea: A CTF shop that brings in stone (and gold) taking wood as fuel, converting 10 wood into 5 stone every 1.2 seconds (50 times per minute -> 250 stone per minute, a modest but "worth" amount)
Instead of getting 5 stone there is a 5% chance to get 10 gold (gold should be more important and if this gets added I will make a feature pitch on increasing the importance of gold).
To build the quarry, make a workshop frame and pay 150 stone, 50 wood and 50 gold.

All of these values are subject to change due to it being untested.
Implementation: I will try to implement this.
Progress: (sprite subject to change)


Pull request #123

team switching menu sometimes disappears when trying to switch team

sometimes when I open my menu and try to switch teams the team switching menu disappears which requires me to reopen it several times.

I don't think this is a bug with the engine as much as it is with the script

I think the team switching menu should stay open until clicked out of

f32 CSprite::GetZ()

Currently, there is no way to check what's the current Z-Level of a sprite. A function like this would be incredibly useful when dynamically setting z values of sprites.

Collapsing tile features

Collapsing tiles should be more open for modding, like make them deal different ammount of damage, change their damage sound/particle effects, maybe even add a function to make them do something after death, not just deal damage, but maybe spawn something. Also i noticed that custom tiles when collapsed, they dont interract with other collapsed tiles, they just fall down.

New CTF variants

  1. Only one team has the flag, the other team has to capture it within a certain time limit.
  2. Only one flag (or treasure) is in the middle of the map in a castle and the two teams have to fight for it.
  3. Each of the teams has to build a destructable trophy and then deliver it to the enemy base. Lika an anti-CTF.

Allow for CSprite & CSpriteLayer image angle Getting and Setting

A request to add 2 functions / methods for CSprites and CSpriteLayers that allows you to read and set the image angle of the sprite without having to go use ResetTransform() and RotateBy().

This gives programmers more control over the rotation of the image & sprite layers without having to reset the image scale of an object.

You can work around this by storing a new variable that remembers the angle, then have it so that whenever it is changed, you rotate the image by the difference in amount every time.

Feature Pitch: Make gold blocks visible on minimap

it's a bit stupid that you have to dig, dig and keep digging on big, weird maps if you need some of that beautiful siege and tunnel material called GOLD. On some maps it's in weird places you'd never expect it to be in, sometimes there's not even any gold left on the map.

And you have no way of knowing that. Similar with stone.

The worse is, that you could actually find out - and not many people know about it; you'd have to open console and type /savemap mapname. You could actually go to kag folder / base / maps and see in the mapname's png where the goddamn gold and stone is. It gives people who know about it an unfair advantage; although there probably aren't many.

It would make sense to fix it then; make gold show on minimap. That way players would know where to dig to get a material that is actually pretty important [siege & tunnels].

Now, you could say that it's too big of a change. That you're supposed to keep digging and digging until you find the gold somewhere.

That argument is stupid; you currently have to memorise where shit is on every map. Or you could just randomly decide where to dig if you want to find gold: keep digging in direction A, or maybe B or C. Finding gold shouldn't depend on luck.

To these saying it's a problem with the maps - is it? Technically, you could put caves in a map and potentially put gold into there, but then, are you going to make every cave on every map have gold? if not, then you still could dig into a cave you saw on the minimap and find nothing. Because underground caves aren't supposed to just have gold in them.

TL;DR:

  • Gold is in weird places on maps. It's not a problem with the maps. Gold should be underground.
  • You shouldn't be forced to dig in random directions and find gold by luck. It's an important material needed for siege and tunnels.
  • You should have a way of knowing if there is even any gold left on the map.
  • This is going to be just a simple QoL convenience change. You can already /savemap in the console and check the map's PNG file, but that's boring and unfair.

My suggestion is pretty simple: make gold blocks visible on the minimap.

Super keg to end stalemates

Just some additional firepower.
made it 250 coins (cost more then 2 kegs combined)
a longer timer (makes it easier for the enemy team to intercept so it wont be op)
Heavy weight ( gives it a bigger chance to backfire)
bigger explosion ( builders have a hard time repairing the damage done to the tower,flagroom, etc.) so it can end stalemates in that regard.
buy it at siege shop only( to prevent builders from laddering over the enemy tower and building a knightshop and dropping these would be way to op.) Now they need atleast 50 gold to bring with them to do it.

https://www.youtube.com/watch?v=4JWyDrAS-kk&feature=youtu.be

[Feature Pitch] Give bombs coloration

Bombs should get coloration on how close they are at explosion. why?
Because some people don't use game sound... and its easier for newbies to understand what is going on.
Impromod had something similar and probably the only good thing about the mod....

If you think its not needed i recommend you playing kag without game sound for a while and you see the problem.

Something like this
bomb colour

CBlob::getCarriedBlob() and CBlob::DropCarried() don't function as expected

As stated, the Carried functions don't work 100% as their name suggests. In theory, these functions should only be interacting with blobs attached to the blob calling them, however, they will instead interact with any blob attached to the blob calling them.

DropCarried() is confirmed to do this, and based on a conversation with Geti, getCarriedBlob() also suffers from a similar issue.

CMixer Custom Music Tracks

Due to a bug with the file matching, custom mixer/music tracks won't load.
A work around for this is to insert the full file path of your sound file, like so.

if (getMixer() !is null)
{
getMixer().ResetMixer();
getMixer().AddTrack("../Mods/MyMod/Entities/Sounds/BeachWaves_Ambient.ogg", 0);
getMixer().PlayRandom(0);
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.