QOAVQCDV2MRAPUX62ZLDTUB6AXYSAGEEWIEZIG4TGIQKCLP5T5GAC
MHN2B5YZ2Y4G3O7UOZJKFQ3SSP5HTNJCXFKCO3KYY46I2GHM3TIQC
7CRXMPVC5HQIF3MH5YMORRDTX5VW5S3YB7UORCXPXTAOXJECTILAC
VZRSH4U473FCZOP5EXURPXXN5J6F3ZLT435YY7A2JHLG2ZZB5KLQC
RZAMG2H2NY73KZJIV4VXLJHJVSRGJDRWWZJERAI6O7AVDW64JEQQC
M2C63XUU3TKYAUPPSPEFVF4CMBQMCVLZATANFWQW35MMYNRB2SEAC
2ICHN37Z2OZ455ALKTMXTV5JOULQBN5UN46OM6JCHMF3CPNHFF3AC
DGC7DHJWSP6BZMDKZ6FG6YS7P2RXZWKFROBYHEX4KZCG7HFBLSUQC
GRTHEQW3VTYOB4CSVAB4VBEAW6MRVAJRV4CBXOIRSUFMO7SK3GCAC
62YQ7EMUYX7GS3AB6FAJDKNX53LVG6T2EH6NMVS6JV36J5VCOKIAC
WKHLLZ3K732M7VJ5KWDSLRWZUARDNDP6ODAXD6SW43CHCT5DX5SAC
KAROCU3SAOGWWSFXGCLE5OW76VTDJR4HDIVTK62BIAESN5SOHVDAC
QZXURLSF73UL67TIXDHMVS7DCFZLQJAPJ6BAGRGXOHH46VMNKGPQC
5YUI4V7A6ONEYREG5CXWHMBYCOP6Q3GMMQD2OTHXZAGKCGM4FWBAC
EF6FXKYIVJCURLSC2CLS27FCTECIIIU2EEPI352ZTCIKYKW5VOBQC
2SLVO3SYIJQOEV2YNSD73BSUSWQNZVROQCGHJCPCDSMCCNKZTQFQC
S256EPZUSOF4TV2KGOFZDJXUFDD57GZFYTCARFJ3SD24RPC56PHAC
S5OSCH7CRN2YEKVTCTJXNLYR2B3PEGCCBUGTN2M6QOCKBNJR62NAC
HXTSBPAP75A7EC4RKWYQMVPPHPNZFPHUORBZWDHGEB6MPAGI7G7AC
A6K2SVTQ3JQ3TC3F44H3ERSX47TRQ6R5EJGIRJKFGKZG6I4HOATQC
6BA5NHNF3UWSL65KCWSXLRTPGYVS4N4NORDJ4FZTZ5SRRDPI4YZAC
FIMVA3BI72IWMBRN5T3PKDCKSJW667BH25INKDWSPWGHLRKCNAPAC
S6LIARO3HIMP67ZDRIPPU3NC4GM6JQQODDIFGZH5HBN75JHFFSQAC
MNQAZILY2KCL4TQRVIHDZT3IBVF2636GC5BCZPR2YA76C4JI353QC
DIEGZM3YMQCKTQW3NLESFZBOGMWW6FT6TZOUL7IUAJD2X5IISUYAC
4PLSNSVW4VOQW5ZXXZGUWB56WI33SXTGWOCD7PNE36OWDGD7NRJAC
O236B5LO6PHJ4TPZGYXDVSLB5EGXXRRLYYVWI46DPL5LEGXEIHZQC
2ZZM2HIS7HNIMK3Q6ALHIMQYLKNIHUOL6FJ57O6SR77VAMEINLWAC
BJF3R3X6UV7VZ4FUKHMPMYFN3RDEKLNXHLHA2H7QLQVRADSPZD4QC
IA2O33JCJVSJ3IVBBHX2XQU4BCPL3X6JDDZ2R2KNGUFPWXAUKO7QC
4JF2MUNF23IFAVVECZNP3JJLFPEB36V7FDRQOKIZNF6Q2FAGOFRQC
I33Z5QD6JHPO7W7G3EHGBIXQABW6ZOC2W4NJP6L5ENDPFRORUFNAC
KM44OG3YNGF45JHSB4HOGBIDHNWS4N6LEODIRYNN6YAPPMEU5I6QC
DGUHVA7XX4HWCIXCARJCI7T6VTXEJUOPUYZOLDOOOWIZYFEJQYFQC
XF52N4U7HWXOF4PDSCR7LCUENLTSXLWEZGS2IJ6562KYI567Z2GAC
FNS4LRFQNFM4BCB23CYHOWA2N4MG2DEUMNK6D55BQ26TX6OJLIBQC
LAFCS4AAOMBOBURWXRZEDUI4J5QGBP7CJQXIPLKXEDXNBCVE7SLQC
HUULCHM5GFGZ7GKLCULFHC333LQ3LBI62VKII3YL5O4C5CDGCT4AC
2RUZ7TTRT7SMZT2V7YWUCCTJJXNRT2LNJ2QBBVN4RMREMOGMGMHQC
6TAXWREAGU2AW2MHM447UBAE6FNJFTBEGHZCAMVYRI4RKAODDLIQC
MQD6ISMHW27RCHAGJUINEULYXSY3JQ3UKVQPEM5PYDMM32TUYAYQC
JZVIQ3IPEXQ5OWCAKZQW666LXIZLMP5U247YI6Y2EJ7MDNWPGCZQC
MML56TWYWB6SUY5JEWHG2PNLAH3JY72PGCEXIGOYE54EAC2WSWBAC
DTKCWM4J7PFNWAAES3RZHQGDA6PTDNX4TZVOXAKF5V7LCZBI3XUAC
ROTMK5LNNK7T5YXVOMUODVMCQWIHPZYOME4WDIAMZJ4VXD7SOEBAC
K4SCXQID5U75KMYJAUGB5DSKWIFGXTRA2B7PIVWR3XMHPJLWZXXAC
XRWOXKR3MD3O73SH33CWRUYMTS6KVWGN6U2AIKNVNGHN37MY7UYQC
GBGS6RTZTCKRMLLDVCBGMRTJNNOSAUTXN5D2EMEQMQAREORE54PAC
VUAVVMQEUYSXHBIUJHGRX237EZFT5MCB73ZKVWMGJDRHYZH4XZKAC
OXMN3LHBNH7CWHEZRPSZTN244O3ACTOEKZEAKQNKFXQ7VQSM26YQC
6UYO5OFJ5JDP3ANPDJ3NG66EQHMTBAAP6K4LPRG3DH34R2S4VZUAC
HMDPEJRZK3PO6M5Z655Y4HWCUKC5I35GRMVVQOZYXWWCIH5ZWNPQC
R475KN7MR3OG7EBLVNOO7QRIKXDGY2PIDXXV3HW4KBD5QM7B5OJQC
5I5QA3YK5G5QQCXMSDOEAX3A74LVXV7PYWAIHMLFANR2GUFWMKGQC
577EKAKIUP5R4STCPLRNJT6IJR6G232FAJ2T7DSCK2LOJZ5EG55QC
SXUEBCCDPGKZIWBSRNELNL75BHYDNWLWXU6QOKYWIWFPLWTOIHHQC
CD5FF75KTOBTMVMTMCKMR6F5DFKOF26I5K43ITNHGBI3ZAZHA4RAC
VMHOCJSMGO45AAP5EMTVE6CAEOXTM5VNG56ZUMV266MSMPYHY3QAC
MDJQTAONL4M7SFFORMXLJHA7WBDTDTRZAZ544JR23SODSCWSVZ3AC
void PlanActionImmediate(IAction action) {
if (_plannedActions.TryPeek(out var currentAction)) {
currentAction.Cancel();
}
_plannedActions.CutInLine(action);
OnPlannedActionsChanged(new(transform));
}
var weaponMoveSet = _equippedWeapon.GetCombatMoveSetRef().combatMoveSet.CombatMoves();
var weaveMoveSet = weave.martialSequence.GetSequence().Select(moveRef => moveRef.combatMove);
return weaveMoveSet.All(weaveMove => weaponMoveSet.Any(weaponMove => weaveMove.MoveName == weaponMove.combatMove.MoveName));
var weaponMoveSet = _equippedWeapon.GetCombatMoveSetRef().CombatMoveSet.CombatMoves();
var weaveMoveSet = weave.MartialSequence.GetSequence().Select(moveRef => moveRef.CombatMove);
return weaveMoveSet.All(weaveMove => weaponMoveSet.Any(weaponMove => weaveMove.MoveName == weaponMove.CombatMove.MoveName));
if (availableWeapons?.Any() == true) {
_availableWeaponsByName = availableWeapons.Distinct().ToDictionary(weaponRef => weaponRef.Value._name, weaponRef => weaponRef.Value);
if (_availableWeapons?.Any() == true) {
_availableWeaponsByName = _availableWeapons.Distinct().ToDictionary(weaponRef => weaponRef.Value.Name, weaponRef => weaponRef.Value);
if (attackCount < animationClipSet.moveContainers.Count) {
var moveName = animationClipSet.moveContainers[attackCount].combatMove.Value.MoveName;
overrideClip = animationClipSet.moveContainers[attackCount].attackAnimation;
if (attackCount < animationClipSet.Attacks.Count) {
var moveName = animationClipSet.Attacks[attackCount].CombatMove.Value.MoveName;
overrideClip = animationClipSet.Attacks[attackCount].AttackAnimation;
public CombatMoveRef combatMove;
public AnimationClip attackAnimation;
public AnimationClip runAnimationOverride;
[FormerlySerializedAs("combatMove")]
public CombatMoveRef CombatMove;
[FormerlySerializedAs("attackAnimation")]
public AnimationClip AttackAnimation;
[FormerlySerializedAs("runAnimationOverride")]
public AnimationClip RunAnimationOverride;
var isAdvanced = _runeWeaving.runeWeaving.Advance(Time.deltaTime);
stateToReturn = new State(isAdvanced, CompletionStatus(), false, _runeWeaving.runeWeaving.GetCurrentMove());
var isAdvanced = _runeWeaving.RuneWeaving.Advance(Time.deltaTime);
stateToReturn = new State(isAdvanced, CompletionStatus(), false, _runeWeaving.RuneWeaving.GetCurrentMove());
stateToReturn = new State(false, CompletionStatus(), stateToReturn.IsMoving, _runeWeaving.runeWeaving.GetCurrentMove());
stateToReturn = new State(false, CompletionStatus(), stateToReturn.IsMoving, _runeWeaving.RuneWeaving.GetCurrentMove());
public RuneWeavingBank runeWeavingBank;
public WeaveNavigator weaveNavigator;
public TMP_InputField weaveName;
[UnityEngine.Serialization.FormerlySerializedAs("runeWeavingBank")]
[SerializeField] RuneWeavingBank _runeWeavingBank;
[UnityEngine.Serialization.FormerlySerializedAs("weaveNavigator")]
[SerializeField] WeaveNavigator _weaveNavigator;
[UnityEngine.Serialization.FormerlySerializedAs("weaveName")]
[SerializeField] TMP_InputField _weaveName;
public RuneWeavingBank watchedRuneWeavingBank;
public EventAggregator eventAggregator;
[UnityEngine.Serialization.FormerlySerializedAs("watchedRuneWeavingBank")]
[SerializeField] RuneWeavingBank _watchedRuneWeavingBank;
[UnityEngine.Serialization.FormerlySerializedAs("eventAggregator")]
[SerializeField] EventAggregator _eventAggregator;
_weaveDropDown.AddOptions(watchedRuneWeavingBank.GetWeaves().Select(weave => new TMP_Dropdown.OptionData(weave.weaveName)).ToList());
_weaveDropDown.AddOptions(_watchedRuneWeavingBank.GetWeaves().Select(weave => new TMP_Dropdown.OptionData(weave.WeaveName)).ToList());
(_runeBindingSequenceTime <= _martialSequenceTime - _martialSequence[positionInSequence].CombatMoveRef.combatMove.Speed + 0.01f);
(_runeBindingSequenceTime <= _martialSequenceTime - _martialSequence[positionInSequence].CombatMoveRef.CombatMove.Speed + 0.01f);
public WeaveNavigator weaveNavigator;
public RuneWeavingBank runeWeavingBank;
public TMP_Dropdown weavePicker;
[UnityEngine.Serialization.FormerlySerializedAs("weaveNavigator")]
[SerializeField] WeaveNavigator _weaveNavigator;
[UnityEngine.Serialization.FormerlySerializedAs("runeWeavingBank")]
[SerializeField] RuneWeavingBank _runeWeavingBank;
[UnityEngine.Serialization.FormerlySerializedAs("weavePicker")]
[SerializeField] TMP_Dropdown _weavePicker;
if (ValidWeaveName.TryParse(weavePicker.options[weavePicker.value].text, out var validWeaveName)) {
if (runeWeavingBank.TryGetWeaveByName(validWeaveName, out var runeWeavingContainer)) {
weaveNavigator.Reload(runeWeavingContainer);
if (ValidWeaveName.TryParse(_weavePicker.options[_weavePicker.value].text, out var validWeaveName)) {
if (_runeWeavingBank.TryGetWeaveByName(validWeaveName, out var runeWeavingContainer)) {
_weaveNavigator.Reload(runeWeavingContainer);
public RuneWeavingBank runeWeavingBank;
public TMP_Dropdown weavePicker;
[UnityEngine.Serialization.FormerlySerializedAs("runeWeavingBank")]
[SerializeField] RuneWeavingBank _runeWeavingBank;
[UnityEngine.Serialization.FormerlySerializedAs("weavePicker")]
[SerializeField] TMP_Dropdown _weavePicker;
if (ValidWeaveName.TryParse(weavePicker.options[weavePicker.value].text, out var validWeaveName)) {
deletedFromBank = runeWeavingBank.TryDeleteWeaveByName(validWeaveName);
if (ValidWeaveName.TryParse(_weavePicker.options[_weavePicker.value].text, out var validWeaveName)) {
deletedFromBank = _runeWeavingBank.TryDeleteWeaveByName(validWeaveName);
public Inventory availableWeapons;
public CombatFormPicker combatFormPicker;
[UnityEngine.Serialization.FormerlySerializedAs("availableWeapons")]
[SerializeField] Inventory _availableWeapons;
[UnityEngine.Serialization.FormerlySerializedAs("combatFormPicker")]
[SerializeField] CombatFormPicker _combatFormPicker;
_weaponDropDown.AddOptions(availableWeapons.GetAvailableWeapons().Select(weapon => new TMP_Dropdown.OptionData(weapon._name)).ToList());
_weaponDropDown.AddOptions(_availableWeapons.GetAvailableWeapons().Select(weapon => new TMP_Dropdown.OptionData(weapon.Name)).ToList());
var weapon = availableWeapons.GetAvailableWeapons().Where(weapon => weapon._name == selectedWeaponName).First();
combatFormPicker.OnSelectedWeapon(weapon);
var weapon = _availableWeapons.GetAvailableWeapons().Where(weapon => weapon.Name == selectedWeaponName).First();
_combatFormPicker.OnSelectedWeapon(weapon);
[SerializeField] TextMeshProUGUI runeName;
[SerializeField] TextMeshProUGUI runeCastTime;
[SerializeField] Image runeImage;
[UnityEngine.Serialization.FormerlySerializedAs("runeName")]
[SerializeField] TextMeshProUGUI _runeName;
[UnityEngine.Serialization.FormerlySerializedAs("runeCastTime")]
[SerializeField] TextMeshProUGUI _runeCastTime;
[UnityEngine.Serialization.FormerlySerializedAs("runeImage")]
[SerializeField] Image _runeImage;
runeImage.sprite = runeRef.RuneSprite;
runeName.text = runeRef.rune.DisplayName;
runeCastTime.text = runeRef.rune.Speed.ToString() + " Seconds";
_runeImage.sprite = runeRef.RuneSprite;
_runeName.text = runeRef.Rune.DisplayName;
_runeCastTime.text = runeRef.Rune.Speed.ToString() + " Seconds";
public List<CombatFormRef> availableCombatForms;
public MovePicker movePicker;
[UnityEngine.Serialization.FormerlySerializedAs("availableCombatForms")]
[SerializeField] List<CombatFormRef> _availableCombatForms;
[UnityEngine.Serialization.FormerlySerializedAs("movePicker")]
[SerializeField] MovePicker _movePicker;
.Intersect(availableCombatForms.Select(combatFormRef => combatFormRef.Value))
.Select(combatForm => new TMP_Dropdown.OptionData(combatForm._name))
.Intersect(_availableCombatForms.Select(combatFormRef => combatFormRef.Value))
.Select(combatForm => new TMP_Dropdown.OptionData(combatForm.Name))
var combatFormRef = availableCombatForms.Where(combatFormRef => combatFormRef.Value._name == selectedCombatFormName).First();
movePicker.OnSelectedCombatForm(_selectedWeapon, combatFormRef.Value);
var combatFormRef = _availableCombatForms.Where(combatFormRef => combatFormRef.Value.Name == selectedCombatFormName).First();
_movePicker.OnSelectedCombatForm(_selectedWeapon, combatFormRef.Value);
[SerializeField] Transform weaponSelectUIPrefab;
[SerializeField] EventAggregator eventAggregator;
[UnityEngine.Serialization.FormerlySerializedAs("weaponSelectUIPrefab")]
[SerializeField] Transform _weaponSelectUIPrefab;
[UnityEngine.Serialization.FormerlySerializedAs("eventAggregator")]
[SerializeField] EventAggregator _eventAggregator;
public Transform weaveSelectButtonTemplate;
public RuneWeavingBank watchedRuneWeavingBank;
public EventAggregator eventAggregator;
[UnityEngine.Serialization.FormerlySerializedAs("weaveSelectButtonTemplate")]
public Transform WeaveSelectButtonTemplate;
[UnityEngine.Serialization.FormerlySerializedAs("watchedRuneWeavingBank")]
public RuneWeavingBank WatchedRuneWeavingBank;
[UnityEngine.Serialization.FormerlySerializedAs("eventAggregator")]
[SerializeField] EventAggregator _eventAggregator;
if (watchedRuneWeavingBank == e.Bank) {
CreateWeaveSelectionButtons(watchedRuneWeavingBank, SelectedWeaver);
if (WatchedRuneWeavingBank == e.Bank) {
CreateWeaveSelectionButtons(WatchedRuneWeavingBank, SelectedWeaver);
[SerializeField] Transform partyMemberUnitFrame;
[SerializeField] Party partyToDisplay;
[UnityEngine.Serialization.FormerlySerializedAs("partyMemberUnitFrame")]
[SerializeField] Transform _partyMemberUnitFrame;
[UnityEngine.Serialization.FormerlySerializedAs("partyToDisplay")]
[SerializeField] Party _partyToDisplay;
[SerializeField] Transform combatFormSelectUIPrefab;
[SerializeField] EventAggregator eventAggregator;
[UnityEngine.Serialization.FormerlySerializedAs("combatFormSelectUIPrefab")]
[SerializeField] Transform _combatFormSelectUIPrefab;
[UnityEngine.Serialization.FormerlySerializedAs("eventAggregator")]
[SerializeField] EventAggregator _eventAggregator;
runeWeaving = new RuneWeaving(toCopy.runeWeaving.martialSequence.GetSequence(), toCopy.runeWeaving.runeBindingSequence.GetSequence(), caster, target);
weaveName = toCopy.weaveName;
RuneWeaving = new RuneWeaving(toCopy.RuneWeaving.MartialSequence.GetSequence(), toCopy.RuneWeaving.RuneBindingSequence.GetSequence(), caster, target);
WeaveName = toCopy.WeaveName;
public MartialSequence martialSequence;
public RuneBindingSequence runeBindingSequence;
[UnityEngine.Serialization.FormerlySerializedAs("martialSequence")]
public MartialSequence MartialSequence;
[UnityEngine.Serialization.FormerlySerializedAs("runeBindingSequence")]
public RuneBindingSequence RuneBindingSequence;
martialSequence = new(combatMovesSequence);
runeBindingSequence = new(runeSequence, caster, target);
MartialSequence = new(combatMovesSequence);
RuneBindingSequence = new(runeSequence, caster, target);
var isAdvanced = martialSequence.Advance(deltaTime);
runeBindingSequence.Advance(deltaTime);
var isAdvanced = MartialSequence.Advance(deltaTime);
RuneBindingSequence.Advance(deltaTime);
while ((_currentRuneIdx < runeRefs.Count) && (_currentTime - _lastRuneTime >= runeRefs[_currentRuneIdx].rune.Speed)) {
Debug.Log($"Finished executing {runeRefs[_currentRuneIdx].name} - {_currentRuneIdx + 1}/{runeRefs.Count} at {_currentTime} ");
runeRefs[_currentRuneIdx].rune.Cast(_context);
_lastRuneTime += runeRefs[_currentRuneIdx].rune.Speed;
while ((_currentRuneIdx < _runeRefs.Count) && (_currentTime - _lastRuneTime >= _runeRefs[_currentRuneIdx].Rune.Speed)) {
Debug.Log($"Finished executing {_runeRefs[_currentRuneIdx].name} - {_currentRuneIdx + 1}/{_runeRefs.Count} at {_currentTime} ");
_runeRefs[_currentRuneIdx].Rune.Cast(_context);
_lastRuneTime += _runeRefs[_currentRuneIdx].Rune.Speed;
if (_currentMoveIdx >= combatMoveRefs.Count) {
Debug.Log($"Executed Martial Sequence {_currentMoveIdx}/{combatMoveRefs.Count} moves in {_currentTime} seconds");
if (_currentMoveIdx >= _combatMoveRefs.Count) {
Debug.Log($"Executed Martial Sequence {_currentMoveIdx}/{_combatMoveRefs.Count} moves in {_currentTime} seconds");
while ((_currentMoveIdx < combatMoveRefs.Count) && (_currentTime - _lastMoveTime >= combatMoveRefs[_currentMoveIdx].combatMove.Speed)) {
Debug.Log($"Finished executing Martial move {combatMoveRefs[_currentMoveIdx].combatMove.MoveName} {_currentMoveIdx + 1}/{combatMoveRefs.Count} at {_currentTime}");
while ((_currentMoveIdx < _combatMoveRefs.Count) && (_currentTime - _lastMoveTime >= _combatMoveRefs[_currentMoveIdx].CombatMove.Speed)) {
Debug.Log($"Finished executing Martial move {_combatMoveRefs[_currentMoveIdx].CombatMove.MoveName} {_currentMoveIdx + 1}/{_combatMoveRefs.Count} at {_currentTime}");
public Rune rune;
public static implicit operator Rune(RuneRef runeRef) => runeRef.rune;
[UnityEngine.Serialization.FormerlySerializedAs("rune")]
public Rune Rune;
public static implicit operator Rune(RuneRef runeRef) => runeRef.Rune;
public CombatMoveSet combatMoveSet;
public static implicit operator CombatMoveSet(CombatMoveSetRef combatMoveSetRef) => combatMoveSetRef.combatMoveSet;
[UnityEngine.Serialization.FormerlySerializedAs("combatMoveSet")]
public CombatMoveSet CombatMoveSet;
public static implicit operator CombatMoveSet(CombatMoveSetRef combatMoveSetRef) => combatMoveSetRef.CombatMoveSet;
public CombatMove combatMove;
public static implicit operator CombatMove(CombatMoveRef combatMoveRef) => combatMoveRef.combatMove;
[UnityEngine.Serialization.FormerlySerializedAs("combatMove")]
public CombatMove CombatMove;
public static implicit operator CombatMove(CombatMoveRef combatMoveRef) => combatMoveRef.CombatMove;
_runeWeavings:
- runeWeaving:
martialSequence:
combatMoveRefs:
- {fileID: 11400000, guid: 58c5b630ea50af94c9793b9d5e497a52, type: 2}
runeBindingSequence:
runeRefs:
- {fileID: 11400000, guid: 3478dbc1ec12f4d4cb446b6d35214b52, type: 2}
weaveName:
weaveName: pq
_runeWeavings: []