transhumandesign / kag-base Goto Github PK
View Code? Open in Web Editor NEWKing Arthur's Gold base folder.
King Arthur's Gold base folder.
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.
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.
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.
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.
-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:
-There is a nobuild-zone at the gold (illustrated by the red area)
-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.
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:
Remove the ability to place flags in catapult.
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.
(I wrote 5 minutes, but maybe 3 or 2 minutes is a better idea)
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:
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
Tutorials:
Save the Princess:
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:
Both options are fairly slow and awkward, especially in the heat of battle. There are two ways this could be improved:
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.
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.
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.
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 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.
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.
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.
Actually, archers can hang with grapplin on trapblock whitch it a bit odd because themself can go through it.
So I propose to let act trapblock on grapplin as on archers.
Feature request:
Currently, there is no way to check if a script is attached to a blob.
A simple ".hasScript(string)" would be a nice feature.
Nothing to say, that's it. So you have to click on KAG in dock to make it visible again.
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:
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.
"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.
Nothing to see here.
Apparently the readme and server setup info files are very out of date when it comes to hosting, and people are getting misled. We should fix this soon.
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.
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...
to do this you need to walk towards platforms and do some small jumps. Video shows how op this is:
https://youtu.be/Rqu2X2qsfjk
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
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.
So bombers are still not in ctf for some reason, so lets add airships!
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.
Make kag Full screen on default with resolutions you can choose.
Repair full screen bugs when you minimize kag.
( important to check discord / steam work when you minimize when applying this fix)
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):
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:
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.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.
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!
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..
this would also require a camera edit too but i'm sure its possiable
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
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
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 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.
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.
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:
My suggestion is pretty simple: make gold blocks visible on the minimap.
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
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.
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.
When having an inventory open, it will only update its values if a new stack gets created or a stack "breaks" half a stack
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);
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.