Giter VIP home page Giter VIP logo

mgm-ability's People

Contributors

nicolasgramlich avatar wayn-games 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

mgm-ability's Issues

Change timing logic

Currently the timings are manage in a way that require an update every frame.
The aim is to change that to only set the time of the end of state.
So when an ability start casting, the next state time is set to the current time plus the cast time.
That way we avoid updating a value every frame and just need to read and not write.
This should alloww for some optimisation uising didchange filters.

Possible memory leak

Back when you posted your original code in the Unity forums and I started massaging the code to work for my game, I noticed a real world memory leak scenario.

The EffectTriggerSystem effectively creates a NativeStream allocated via Allocator.TempJob here:

https://github.com/WAYNGROUP/MGM-Skill/blob/832fbea7701f8ef56f792e0f273d0182aec94191/Runtime/Systems/EffectTriggerSystems.cs#L121

https://github.com/WAYNGROUP/MGM-Skill/blob/832fbea7701f8ef56f792e0f273d0182aec94191/Runtime/Systems/EffectConsumerSystems.cs#L61-L65

which is fine as long as the EffectConsumerSystem actually runs and runs
https://github.com/WAYNGROUP/MGM-Skill/blob/832fbea7701f8ef56f792e0f273d0182aec94191/Runtime/Systems/EffectConsumerSystems.cs#L159

... which might NOT happen when (if I recall correctly) i.e. no HealthEffect was produced in the current tick, then the ECS system doesn't run the i.e. HealthEffectConsumerSystem at all.

My solution was to add a [AlwaysUpdateSystem] to all the Consumer Systems in order to ensure proper cleanup.

TL;DR
Basically the producer always runs, so we need to make sure the consumer also always cleans up.

UI integration using visual elements

Implement custom visual element for displaying the ability info on screen.

The visual element should :

  • Display the abilities icon in an ability book
  • Display the cooldown time both numerically and grapphcally
  • Display the ability name on hover
  • Trigger the ability on click
  • Assign ability to action slots
  • Internationalization of ability tooltip
  • Hide/Show ability book with new Input system
  • Tirgger action slot's ability with new Input System

Version mismatched

Git tag: 0.2.0-preview
package.json's version: 0.1.2-preview

To fix: bump version, then re-tag 0.2.0-preview.

To avoid it in the future, recommended readings:


The issue is detected by openupm build pipelines (right bottom "build issues" section). OpenUPM is an open-source UPM registry with automatic build pipelines.

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.