Manawydan Mantis

Detaily problému Přechod na poznámky ] Historie problému ] Tisk ]
IDProjektKategorieZobrazit stavDatum vloženíPoslední změna
0001457BetatestCommon (Obecné)veřejný08.10.2015 - 18:0221.02.2016 - 18:20
Reportérbiosek 
Přiřazenbiosek 
PrioritanormálníZávažnostmaláReprodukovatelnostnevyzkoušeno
StavuzavřenýŘešenívyřešený 
PlatformaOSVerze OS
Shrnutí0001457: Prepsat ukoncovaci vetve vsech kouzel na Fizznuti, aby bralo mene many
Popisx
ZnačkyŽádné štítky nepřiloženy.
Přiložené soubory

- Závislosti

-  Poznámky k problému
(0003867)
biosek (správce)
08.01.2016 - 11:41
upraveno: 08.01.2016 - 11:44

Udelal jsem kompletni debug kouzleni a prisel jsem na nasledujici:
Kdyz vyslovim formuli, provedou se checky, ubere se plna mana za kouzlo a zapne se timer na zacasteni kouzla. Po dokonceni timeru se sezere dodatecna mana za nedostatek regu.
Tim padem prestoze do ukoncovacich vetvi hodim DoFizzle, tak to vzdy sezere jak manu za kouzlo tak manu za nedostatecne regy.
Jediny jak je mozno zabranit sebrani many za nedostatecne regy je zruseni timeru casteni klavesou ESC, ale i tak to vezme plnou manu za kouzlo.

Navrhuji nasledujici zmenu:
Na zacatku castici sequence se sebere 1/2 many kouzla. A az po kompletnim vycasteni (po dobehnuti timeru castici sequence a po provedeni OnCast) se sebere zbytek 1/2 many kouzla a dodatecna mana za nedostatek regu.
Virtualni metoda OnCast by se z void zmenila na bool a vsechny kouzla by se upravili, ze misto fizzu do ukoncovacich vetvi by se dalo return false; A na zaklade returnu z OnCast by se az teprv bral zbytek many (druha polovina za kouzlo a za nedostatecny regy) pokud by byl return true a nebo pri return false by se provedl fizz a mana by se nevzala vubec.

Ve vysledku by se teda docililo efektu, ze pri spravne sekvenci a zacasteni kouzla, kdyz dojde k nasilnemu ukonceni kouzla v OnCast kvuli nejakym nesplnenym podminkam by caster za kouzlo zaplatil jenom polovinou many kouzla.
A pokud by k nasilnemu ukonceni kouzla v OnCast nedoslo a kouzlo by se spravne zacastilo, tak to sebere furt stejnou manu.

Vznikne par sideeffektu:
1. Kdyz si mag zacasti kouzlo dopredu, tak mu vezme min many a ceka na target, tak target bude moct zrusil a kouzlo mu nevezme dodatecnou manu. Coz vyusti k lepsimu strategovani o tom, zda pouzit predcastene kouzlo nebo ne.
2. Kdyz mag nebude mit manu na zacasteni kouzla, tak jelikoz se mana bude brat az po uspesnem splneni kouzla, tak to vyusti v to, ze kdyz kouzlo nefizzne, tak se vzdy provede, nez se provede DMG do maga. (Driv se dmg za nedostatecnou manu provedl pri dokonceni sekvence kouzla, tzn napr. pred zatargetovanim a caster mohl umrit driv nez se kouzlo provedlo.) Ted to bude naopak. Tzn kouzlo se vzdy provede a caster eventuelne umre az pote. Tohle se mi strasne libi a myslim ze to trosku zlepsi hratelnost, protoze to bude jakoby moznost posledniho vykriku pred smrti treba na monstra nez kdyz umru driv nez se kouzlo vycasti. Takze vlastne vznikne sance na dorazeni monstra pred smrti.

Edit: Ovlivnilo by to i modlitby

(0003869)
biosek (správce)
11.01.2016 - 16:17

Tak hotovo. To byla fuska.
SVN 4189:
Zasadni zmeny v systemu kouzleni a modliteb: (BUFF)
- Nektere kouzla prestoze nefiznuli, tak nic neudelali, protoze mohli narazit na nejakou ukoncujici podminku. (Napr. U UnlockSpellu, kdyz se vybere neco jinyho nez zamek, tak se kouzlo sice povede, sezere manu a ukonci se v tzv ukoncovani vetvi)
- Trosku jsem zmenil zakladni system magie, ktery zahrnuje i modleni, aby se dalo u kazdeho kouzla rozpoznat, jestli se ukoncilo v ukoncovaci vetvi nebo uspesnym/resistnutym seslanim.
- Na zaklade teto zmeny jsem musel prepsat vsechny kouzla a modlitby, aby na upravenem systemu fungovali spravne.
- Co to ve vysledku znamena? Nekolik veci:
1. Pokud kouzlo fizne nebo selze v ukoncovaci vetvi, tak nyni sebere pouze pulku many, co stoji kouzlo a nebudou se pri fizu spotrebovavat regy ani to nebude brat dodatecnou manu za regy, ktere pro dane kouzlo nemate.
2. Pokud kouzlo bude uspesne seslano nebo rezistnuto, tak se nic nemeni a kouzla berou na zacatku kouzleni pulku many a po uspesnem seslani zbytek many + regy + dodatecnou manu za regy, ktere jste nemeli u sebe.
- Tato zmena by mela prevazne pomoct zacinajicim magum, protoze ti prevazne fizujou a kdyz zacasti nejake silnejsi kouzlo, tak se casto stavalo, ze je zabilo.
- V prubehu prepisovani vsech kouzel jsem nektera vcelku i optimalizoval a standardizoval, takze by to melo taky trosku ulehcit serveru.
- Funkcionalita kouzel by ale mela byt z 95% zachovana. Pouze u nekterych jsem provedl mensi zmeny, kdyz se mi u nich neco nezdalo.
- Prepis modliteb zatim neprobehl, pouze jejich uprava, aby fungovali se zmenenym systemem magie.

Dalsi zasadni zmena je v oprave a optimalizaci me znamych memory leaku pri ziskavani poli objektu. Vsechny byli nahrazeny listama, ktery podlehaj garbage collectoru.

- Historie problému
Čas modifikace Uživatelské jméno Pole Změna
08.10.2015 - 18:02 biosek Nový problém
08.10.2015 - 18:02 biosek Stav nový => přiřazený
08.10.2015 - 18:02 biosek Přiřazen => biosek
08.01.2016 - 11:41 biosek Poznámka přidána: 0003867
08.01.2016 - 11:44 biosek Poznámka upravena: 0003867 Zobrazit revize
11.01.2016 - 16:17 biosek Poznámka přidána: 0003869
11.01.2016 - 16:17 biosek Stav přiřazený => čeká na testy
21.02.2016 - 18:20 biosek Stav čeká na testy => uzavřený
21.02.2016 - 18:20 biosek Řešení otevřený => vyřešený


Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker