Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
241 commits
Select commit Hold shift + click to select a range
2f67ed6
Added comments for StatToString with layout of mapping outputs.
marcjohnston Jul 23, 2026
fdba6ee
Added the GetCharismaExpressionProvider.
marcjohnston Jul 23, 2026
d90eb99
Merge pull request #14 from marcjohnston/StatToString
marcjohnston Jul 23, 2026
61d7d94
Merge pull request #15 from marcjohnston/CharismaExpressionProvider
marcjohnston Jul 23, 2026
88a542f
v1.12 publish
marcjohnston Jul 23, 2026
2131124
Merge pull request #16 from marcjohnston/v1.12
marcjohnston Jul 23, 2026
6281658
Added ReadOnlyAttributeSet ToString method
marcjohnston Jul 23, 2026
035fd9c
Merge pull request #17 from marcjohnston/ReadOnlyAttributeSet-ToString
marcjohnston Jul 23, 2026
1a91681
Separated the value retrieval for inspection.
marcjohnston Jul 23, 2026
2b610d3
Updated the gitignore to exclude .jfm and .dbmdl files.
marcjohnston Jul 23, 2026
826286e
All mutations how have an ItemEnhancement parallel property.
marcjohnston Jul 23, 2026
84deab2
Renamed the ModifyStatValue parameters accordingly.
marcjohnston Jul 24, 2026
575cd57
Fixed spelling typos.
marcjohnston Jul 24, 2026
a86f410
Removed unless try catch block.
marcjohnston Jul 27, 2026
786d6a6
Fixed defect the timerscipt ... with endless loop not using customlea…
marcjohnston Jul 27, 2026
6513c21
Removed unneeded cast.
marcjohnston Jul 27, 2026
a890d9e
Added additional tags for ToString.
marcjohnston Jul 27, 2026
013dc75
Removed commented dead code from migrations.
marcjohnston Jul 27, 2026
f5803ef
Updated PrintSpells to improve ability to debug.
marcjohnston Jul 27, 2026
6432ced
Fixed the mutation serialization and deserialization.
marcjohnston Jul 28, 2026
dba997d
Serialization and deserialization code restructured.
marcjohnston Jul 28, 2026
460a580
Removed two useless object retrievals.
marcjohnston Jul 28, 2026
870b602
Fixed two unnessary object lookups.
marcjohnston Jul 28, 2026
e14f4f4
Updated the serialization pptx.
marcjohnston Jul 28, 2026
05aedcb
Fixed " -more-" message for Wizard Cure All. Used Game.MsgPrint(null)…
zohvik Jul 29, 2026
dfeb064
Added the CartsianProduct functionality.
marcjohnston Jul 29, 2026
540df38
Added additional language to the failure of the allow construction pa…
marcjohnston Jul 29, 2026
7a4a10b
Merge branch 'dev' of https://github.com/marcjohnston/AngbandOS into dev
marcjohnston Jul 29, 2026
ae04830
Updated comments.
marcjohnston Jul 29, 2026
b9c59ad
Added support for MaximumExperienceLevel in the MappedSpellScript sin…
marcjohnston Jul 29, 2026
79f172d
Moved ToDo variables over to post initialization region.
marcjohnston Jul 29, 2026
5faeb6c
Moved BestMatchSelector to Core folder.
marcjohnston Jul 29, 2026
3a88f36
Removed the BestMatchSelector POC.
marcjohnston Jul 29, 2026
c17fa9d
Fixed ambiguous mappedspellscript defect.
marcjohnston Jul 29, 2026
ea73d19
Removed the BestMatchSelector.
marcjohnston Jul 29, 2026
8d0d3e2
Reduced the number of experience levels to absolute minimum for mappe…
marcjohnston Jul 29, 2026
048e3de
Spell now using Game.GetMappedSpellScript.
marcjohnston Jul 29, 2026
a9e9c5a
InnateTotals added.
marcjohnston Jul 29, 2026
fa770fd
moster selection works with "enter"
Jul 30, 2026
807c52f
Merge branch 'dev' of https://github.com/marcjohnston/AngbandOS into dev
Jul 30, 2026
ce199d8
Merge pull request #18 from marcjohnston/fix/wizard-cure-all-message
zohvik Jul 30, 2026
01e4956
Renamed attribute sets for races, characterclasses and mutations cons…
marcjohnston Jul 30, 2026
ddab374
Removed AttributeSet that was no longer being used.
marcjohnston Jul 30, 2026
b1bdc44
Restored the Game property.
marcjohnston Jul 30, 2026
ca614af
Added stompable.
marcjohnston Jul 30, 2026
744d541
Renamed the FlavorSymbol and FlavorColor properties to AssignedSymbol…
marcjohnston Jul 30, 2026
62ff141
Reorganized and cleaned up the ItemFactory.
marcjohnston Jul 30, 2026
b8a61d1
Added the CreateTupleGameStateBag and CreateTuplesGameStateBag method…
marcjohnston Jul 31, 2026
948e707
All of the create tuple locations have now been updated.
marcjohnston Jul 31, 2026
90c2579
The RestoreGameState.GetTuple and GetTuples methods have been institu…
marcjohnston Aug 3, 2026
babb1d7
Apply some code formatting.
marcjohnston Aug 3, 2026
8e91268
Remove the nullability for Race as it is used for the in-game. A set…
marcjohnston Aug 3, 2026
65b91fc
RegenAttribute defect fixed moved from in OrAttributeAndExpressionBin…
marcjohnston Aug 3, 2026
602788c
CharaterClasses now have minimum experience, has heavy armor and item…
marcjohnston Aug 3, 2026
157dcfe
Renamed the Game.EffectiveAttributeSet to simply attributeset
marcjohnston Aug 4, 2026
b13ab57
Updated comments.
marcjohnston Aug 4, 2026
59a2779
Moved SystemAttributes up one folder.
marcjohnston Aug 4, 2026
aa7a64f
Rename OrAttribute to BitwiseOrAttribute and SumAttribute to Summatio…
marcjohnston Aug 4, 2026
fee38bd
Refactored the ArmorIsHeavy method.
marcjohnston Aug 4, 2026
60f3c93
HasRegen has been converted to a bitwise bool
marcjohnston Aug 4, 2026
2b19bba
Renamed the Or and Sum attribute methods.
marcjohnston Aug 4, 2026
9c10944
Renamed another Or and Sum classes.
marcjohnston Aug 4, 2026
f60707d
CharacterClasses now serialize the AttributeSet even though it is ref…
marcjohnston Aug 4, 2026
1db7779
Renamed the enhancement tuples appropriately.
marcjohnston Aug 4, 2026
985c30b
Updated a comment.
marcjohnston Aug 4, 2026
50e6c3a
Renamed the TupleBindings to BindingTuples
marcjohnston Aug 4, 2026
a00092d
Added GetTuplesOrDefault for T2
marcjohnston Aug 4, 2026
aee8c3b
Using shorter version of ?.
marcjohnston Aug 4, 2026
8f6b790
Fixed typo
marcjohnston Aug 4, 2026
a7ef602
Races enhancements now have minimum experience level applied.
marcjohnston Aug 4, 2026
d8b16db
CalcBonuses have been integrated into the Races now
marcjohnston Aug 4, 2026
033de7e
Added the Get<T> method.
marcjohnston Aug 4, 2026
aa0560e
ObjectAsFlags and AbilitiesAsFlags converted to return ReadOnlyAttrib…
marcjohnston Aug 4, 2026
f342560
Removed the [Serializable] from all files
marcjohnston Aug 4, 2026
b0396e8
FireSheath automatically adds 1 radius glow.
marcjohnston Aug 4, 2026
9c599f4
Mutations now have experience.
marcjohnston Aug 5, 2026
f6e40fb
Fixed defects with render character and removed the Game.GetAbilities…
marcjohnston Aug 5, 2026
abb2c38
Deleted blank line.
marcjohnston Aug 5, 2026
e2557e3
Removed more blank lines.
marcjohnston Aug 5, 2026
9d009c9
Regeneration is now fully refactored.
marcjohnston Aug 5, 2026
e00e831
HasAggravation refactored.
marcjohnston Aug 5, 2026
097eb5c
HasAcidImmunity refactored.
marcjohnston Aug 5, 2026
c7470c5
HasAcidResistance refactored.
marcjohnston Aug 5, 2026
790d19a
HasAntiMagic refactored.
marcjohnston Aug 5, 2026
ed40b7d
All of the sustains are now refactored.
marcjohnston Aug 5, 2026
1ffe5a5
Cleaned up Game a bit
marcjohnston Aug 5, 2026
b28ac26
Moved many more attributes to read-only.
marcjohnston Aug 5, 2026
5cba6ae
A boat load of more refactors are complete.
marcjohnston Aug 5, 2026
505ca91
Joined the properties into a single region
marcjohnston Aug 5, 2026
a094241
Renamed the RadiusAttribute to GlowRadiusAttribute.
marcjohnston Aug 5, 2026
bd85949
GlowRadius refactored.
marcjohnston Aug 5, 2026
68ea967
GlowRadius moved.
marcjohnston Aug 5, 2026
3acd32c
Boat load of more proeprties refactored.
marcjohnston Aug 5, 2026
18a44f7
More mutation properties deleted.
marcjohnston Aug 5, 2026
2ed20a5
Moved height.
marcjohnston Aug 5, 2026
5029bdc
InfraVision refactored.
marcjohnston Aug 5, 2026
87640f7
Moved confusing touch property.
marcjohnston Aug 5, 2026
ec96ebe
Moved Is dates properties.
marcjohnston Aug 5, 2026
291f6d3
Moved the RollToPreventTheft function.
marcjohnston Aug 5, 2026
81dc03b
Moved GetRandomBizarreMonsterSelector.
marcjohnston Aug 5, 2026
f8fcb8a
Moved a couple properties.
marcjohnston Aug 5, 2026
04f5259
Properties are now computed by the UpdatedBonusesFlaggedAction and no…
marcjohnston Aug 5, 2026
0bfecf7
Removed the Game to do file
marcjohnston Aug 5, 2026
fc4ac10
Removed the character class CalcBonuses method
marcjohnston Aug 5, 2026
b8559af
IIndex is now sorted.
marcjohnston Aug 6, 2026
d234efa
fixed spelling
marcjohnston Aug 6, 2026
f6481a9
Added title to mutation.
marcjohnston Aug 6, 2026
c888bfd
Added the LoseAllMutations wizard command.
marcjohnston Aug 6, 2026
8b8bfe7
Wizard commands keystrokes duplicate detection added.
marcjohnston Aug 6, 2026
5c8845f
Removed duplicate monster race sorting.
marcjohnston Aug 6, 2026
76e51f1
Renamed two teleporation mutations.
marcjohnston Aug 6, 2026
d5d901b
Added ConsoleTable.Build method.
marcjohnston Aug 6, 2026
c9a715f
Added ConsoleTableWithRowHighlighting for SpawnMonster.
marcjohnston Aug 6, 2026
636e4a4
Created the Game.SelectFromConsoleTable method.
marcjohnston Aug 6, 2026
0b2f25a
Now using the Game.SelectFromConsoleTable functionality
marcjohnston Aug 6, 2026
da1ce65
Updated console table.
marcjohnston Aug 6, 2026
f2f5efd
Bonus armor class refactored and tested.
marcjohnston Aug 6, 2026
4cd2cfb
Removed the calcbonuses empty method.
marcjohnston Aug 6, 2026
580f1e1
Reformatted the item enhancement.
marcjohnston Aug 6, 2026
0b41fcc
Added speed values to extract engery table.
marcjohnston Aug 6, 2026
882ece1
Fixed numbering.
marcjohnston Aug 6, 2026
ef02c24
Speed and hidden speed refactored and working.
marcjohnston Aug 6, 2026
a32cce5
Race.CalcBonuses has been deleted.
marcjohnston Aug 6, 2026
082b8e0
Support signed identifiers in expressions.
zohvik Aug 7, 2026
d48a437
Removed unnecessary defaults from GenerateExpression overrides and do…
zohvik Aug 7, 2026
fe6588b
Removed the EffectiveAttributeSet.IEnumerable interface.
marcjohnston Aug 7, 2026
ddb936b
Removed the Race.UpdateRacialAbilities as it is no longer needed.
marcjohnston Aug 7, 2026
016bf47
Removed a couple more EffectiveAttributeSet properties that are no lo…
marcjohnston Aug 7, 2026
f4a27de
Removed the Race.HasRacialPowers property.
marcjohnston Aug 7, 2026
b61fbde
Added comments.
marcjohnston Aug 7, 2026
49fd8d9
Moved the validations performed after the game load to after configur…
marcjohnston Aug 7, 2026
3b59ef8
RacePowers classes all named properly now.
marcjohnston Aug 7, 2026
a8a6e9f
Fixed bug for martial artists only heavy armor.
marcjohnston Aug 7, 2026
33f8ae4
Moved the confusion test before the script process runs.
marcjohnston Aug 7, 2026
f6122c5
Removed extra blank line.
marcjohnston Aug 7, 2026
bfd3e28
Added all 6 innate attributes.
marcjohnston Aug 7, 2026
cd7b7cf
Moved the GetStats from Game into the confirmation birth stage.
marcjohnston Aug 7, 2026
344f0fe
Ability bonus values refactored.
marcjohnston Aug 7, 2026
3793c69
SavingThrow has been refactored.
marcjohnston Aug 8, 2026
9d10fa8
CharacterClassAbilities have been removed and refactored.
marcjohnston Aug 9, 2026
0af2300
Moved the UpdateBonusesFlaggedAction content to the Game. The flagge…
marcjohnston Aug 10, 2026
6322841
UseDevice and UseDeviceBonusPerLevel refactored
marcjohnston Aug 10, 2026
d1f585e
Removed duplicate attributes.
marcjohnston Aug 10, 2026
54e7da2
RaceAbility has been removed.
marcjohnston Aug 10, 2026
59aab29
Moved two properties out of the state data region.
marcjohnston Aug 11, 2026
300f106
created the UseDeviceItemTest to consolidate the logic for the UseDev…
marcjohnston Aug 11, 2026
4c9c86b
Made all of the UpdateBonuses output properties get; private set; now…
marcjohnston Aug 11, 2026
1474690
Updated comment.
marcjohnston Aug 11, 2026
3088834
Added equipment slot enum
marcjohnston Aug 11, 2026
54a8c30
BrandWeaponAsVampiric now supports multiple melee wield slots.
marcjohnston Aug 11, 2026
6e37753
Removed IsWeapon and CanBeDisenchanted wield slot properties.
marcjohnston Aug 11, 2026
26ab157
Couple fixed for RemoveKeyedEnhancements
marcjohnston Aug 11, 2026
ea94d1d
IsCursed and HeavyCurse is no longer a BoolAttribute.
marcjohnston Aug 11, 2026
a84fb03
Deleted the last remaining BoolAttribute files and references.
marcjohnston Aug 11, 2026
e51edef
Removed numerous properties in the EffectiveAttributeSet.
marcjohnston Aug 11, 2026
21e3652
Divided the attribute value classes into two folders.
marcjohnston Aug 11, 2026
9b3cd5d
Removed a couple usages of the SummationAttribute.Set calls.
marcjohnston Aug 11, 2026
efd665e
Removed the final two uses of the SummationAttribute.Set and converte…
marcjohnston Aug 11, 2026
361182b
Renamed the Game.SkillDigging to simply Tunnel.
marcjohnston Aug 11, 2026
77d9ebe
Added the mutation.RegenerateOnlyOnGain property.
marcjohnston Aug 12, 2026
9f63572
Removed the OnGain for IllNorm mutation
marcjohnston Aug 12, 2026
84b6938
Removed the mutation.Override property.
marcjohnston Aug 12, 2026
5573998
Fixed defect with RenderCharacter
marcjohnston Aug 12, 2026
c964139
Game.SkillsSearching refactored.
marcjohnston Aug 12, 2026
39458dc
Stealth, SavingThrow and search are all refactored.
marcjohnston Aug 12, 2026
f5956be
Moved property declarations.
marcjohnston Aug 12, 2026
ea21fb5
ChaosGift and ReceivesLevelReward have been refactored.
marcjohnston Aug 12, 2026
5912471
Moved all of the random mutation processworld methods into a script.
marcjohnston Aug 13, 2026
7f7526c
Fixed mutations GetKey throw defect.
marcjohnston Aug 13, 2026
f74e788
Converted the RenderForIdentication from returning a single string to…
marcjohnston Aug 13, 2026
5cb843f
!= -> is not
marcjohnston Aug 19, 2026
c2054e1
Shortened bindings for GoldFactories and StartupTown.
marcjohnston Aug 19, 2026
b57e000
Startup town now an object.
marcjohnston Aug 19, 2026
98cdc8e
Added ListEffectiveAttributeValue and UniversalListEffectiveAttribute…
marcjohnston Aug 19, 2026
09d65a8
Removed a couple more instances where BoolAttrribute was used and not…
marcjohnston Aug 19, 2026
d56f579
Forgot a couple more BoolAttribute references.
marcjohnston Aug 19, 2026
1cc3ff7
Added the ProcessWorldScripts attribute.
marcjohnston Aug 19, 2026
e67b721
Attribute.ToString has been fixed.
marcjohnston Aug 19, 2026
0e0aa66
ScriptsAttribute working now.
marcjohnston Aug 19, 2026
27b6c58
Merge pull request #19 from marcjohnston/feature/expression-identifie…
marcjohnston Aug 20, 2026
07d7304
Merge branch 'dev' of https://github.com/marcjohnston/AngbandOS into dev
marcjohnston Aug 20, 2026
e2379c9
The item identity sense frequency defect was fixed.
marcjohnston Aug 20, 2026
d387c0c
Removed blank lines.
marcjohnston Aug 20, 2026
d6d0329
Removed unused ItemEnhancement.
marcjohnston Aug 20, 2026
989faa6
Hook for ProcessWorld and mutations are complete.
marcjohnston Aug 20, 2026
a2a67f1
Game.UpdateMonsterVisibility(int) converted to Monster parameter
marcjohnston Aug 23, 2026
c927827
Converted TargetAble(int) to Targetable(Monster)
marcjohnston Aug 23, 2026
0488eb4
Converted the HealthTrack to TrackMonsterHealth and fixed defect for …
marcjohnston Aug 23, 2026
89ec86c
Converted the LookMonDesc to Monster parameter
marcjohnston Aug 23, 2026
e56a9ff
Moved the PlaceMonster local methods outside to the Game class.
marcjohnston Aug 23, 2026
20f824a
Added a comment.
marcjohnston Aug 23, 2026
8635608
Converted a PlaceMonsterByIndex.
marcjohnston Aug 23, 2026
e18366e
Converted more PlaceMonsterByIndex to Aux
marcjohnston Aug 23, 2026
9f83263
Renamed a couple variables and methods for MonsterRaceIndex.
marcjohnston Aug 23, 2026
a75acf3
Renamed another variable getMonHookNum to monsterRaceFilter.
marcjohnston Aug 23, 2026
5cfb6be
GetMonsterRaceIndex now returns int? instead of 0 when selection cann…
marcjohnston Aug 23, 2026
4696498
Removed the empty variables for Type5 and 6 rooms.
marcjohnston Aug 23, 2026
645e037
GetMonsterRaceIndex converted to GetMonsterRace
marcjohnston Aug 23, 2026
9fb7762
Type 5 and 6 rooms are using monster race objects instead of indexes.
marcjohnston Aug 23, 2026
9a99c3a
Added comment
marcjohnston Aug 23, 2026
7ddd7e1
Removed the NewlySpawned monster flag from Monster.IndividualFlags an…
marcjohnston Aug 23, 2026
6bb5df8
Converted the CurrentlyActingMonster logic into SkipFirstTurn flag fo…
marcjohnston Aug 23, 2026
01e541f
Tile.MonsterIndex converted to Tile.Monster
marcjohnston Aug 23, 2026
841cc4d
The PlaceMonsterOne now returns a Monster? instead of bool.
marcjohnston Aug 23, 2026
62a2b97
Removed the obsolete PlaceMonsterAux and removed the default value fo…
marcjohnston Aug 23, 2026
a385192
Renamed PlaceMonster methods and slp and pet parameters
marcjohnston Aug 23, 2026
66d6b2b
Removed the grp parameter for PlaceLevelMonster
marcjohnston Aug 23, 2026
06e622b
Renamed a couple parameters
marcjohnston Aug 23, 2026
6348ef7
Created the PlaceGroupOfMonstersByRace and removed the group parameter.
marcjohnston Aug 24, 2026
8191c81
Renamed the PlaceMonsterByRace to PlaceOneMonsterByRace
marcjohnston Aug 24, 2026
995c48d
Fixed defect for saving GridTile.Monster property.
marcjohnston Aug 24, 2026
7d67548
Removed the Game._hackMIdsli property.
marcjohnston Aug 24, 2026
6e59014
Removed the _hackMptrli property
marcjohnston Aug 24, 2026
3ca6f66
Moved two monster properties next to the Monsters property.
marcjohnston Aug 24, 2026
53fc1b8
Projectile.CheckBounceOffPlayer now takes monster parameter instead o…
marcjohnston Aug 24, 2026
9daa7b8
PlayerEffectUniversalScript.ApplyEffect who parameter converted to Mo…
marcjohnston Aug 24, 2026
f59e233
Removed duplicate variables.
marcjohnston Aug 24, 2026
4e721e7
Monster.Race no longer nullable by definition.
marcjohnston Aug 24, 2026
3dc5305
Removed unused parameter Visibly from DeleteMonsterByIndex
marcjohnston Aug 24, 2026
6ca2925
Renamed PlaceOneMonster to SpawnOneMonster
marcjohnston Aug 24, 2026
564f21f
Moved the ReplacePets and ReplacePet methods inside the Play method.
marcjohnston Aug 24, 2026
0b51d2a
Converted the LoreDoProbe monster index parameter to monster.
marcjohnston Aug 24, 2026
4a09b3b
PlayerNaturalAttackOnMonster monster index parameter converted to mon…
marcjohnston Aug 24, 2026
66b1778
Item.HoldingMonsterIndex converted to Monster
marcjohnston Aug 24, 2026
afa426f
Made CompactMonstersAux local method.
marcjohnston Aug 24, 2026
9936ad8
The private Game._petList has been removed.
marcjohnston Aug 24, 2026
508574c
Game.Monsters is now a list.
marcjohnston Aug 24, 2026
5cf7a9e
Removed unused GetPets method.
marcjohnston Aug 24, 2026
3d2ae0b
Removed last InvenDrop with item index.
marcjohnston Aug 24, 2026
b0bf855
Made Game.RegenerateHealth private.
marcjohnston Aug 24, 2026
076e6c0
Moved the Game.Tiles to the top declarations with private sets.
marcjohnston Aug 24, 2026
f8a5e35
Remove the partial game declaration, the game state verifier and move…
marcjohnston Aug 24, 2026
ea80a5e
Removed the Ability.NameReduced method as it was computed.
marcjohnston Aug 25, 2026
d966b3b
Converted the Ability.Name property to computed from new abbreviation…
marcjohnston Aug 25, 2026
697b37a
Mutation.ActivationSummary converted to computed.
marcjohnston Aug 25, 2026
79f4f0f
Removed unused using statement.
marcjohnston Aug 25, 2026
ee2f8e6
MutationGroupEnum refactored out of existence.
marcjohnston Aug 25, 2026
a8e2f15
CharacterClass Available Primary and Secondary realms are now binding.
marcjohnston Aug 26, 2026
3096451
CharacterClass.ArtifactBias is now a weighted random that is bound.
marcjohnston Aug 26, 2026
50d6d12
Fixed defect with IdentifyActivation
marcjohnston Aug 26, 2026
5173302
CharacterClass.SpellStat now binding as SpellAbility
marcjohnston Aug 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,5 @@ bin/
/AngbandOS.SqlPersistentStorage/obj/AngbandOS.PersistentStorage.Sql.csproj.nuget.g.props
/AngbandOS.Core/.idea
/AngbandOS.SqlPersistentStorage/obj/Debug/net6.0/AngbandOS.PersistentStorage.Sql.csproj.CopyComplete
/AngbandOS.PersistentStorage.Sql.Schema/AngbandOS.PersistentStorage.Sql.Schema.dbmdl
/AngbandOS.PersistentStorage.Sql.Schema/AngbandOS.PersistentStorage.Sql.Schema.jfm
11 changes: 2 additions & 9 deletions AngbandOS.Avalonia/MainWindow.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ private void RunGame()
}
else
{
// We cannot append to a non-existant replay file.
// We cannot append to a non-existent replay file.
gameResults = gameServer.PlayGame(this, null);
}
}
Expand Down Expand Up @@ -104,14 +104,7 @@ private async void MainWindow_Opened(object? sender, EventArgs e)
{
await Task.Run(() =>
{
try
{
RunGame();
}
catch (Exception ex)
{
Dispatcher.UIThread.Post(() => GameExceptionThrown(ex.Message));
}
RunGame();
});

Dispatcher.UIThread.Post(() => this.Close());
Expand Down
2 changes: 1 addition & 1 deletion AngbandOS.Avalonia/Mixer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace AngbandOS.Avalonia
{
internal class Mixer
internal class Mixer
{
public float MusicVolume = 1;
public float SoundVolume = 1;
Expand Down
2 changes: 1 addition & 1 deletion AngbandOS.Avalonia/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace AngbandOS.Avalonia
{
internal class Program
internal class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
Expand Down
2 changes: 1 addition & 1 deletion AngbandOS.Avalonia/RendererControl.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
namespace AngbandOS.Avalonia
{
// Single-control renderer (fast). It owns its buffers and draws in Render.
internal class RendererControl : Control
internal class RendererControl : Control
{
private readonly object _sync = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,15 @@
using AngbandOS.Core.Expressions.IDE;
namespace AngbandOS.Core.Expressions;

[Serializable]
internal class ExperienceLevelIdentifierExpression : IdentifierExpression
{
private readonly int Value;
public ExperienceLevelIdentifierExpression(int value, string matchedIdentifier) : base(matchedIdentifier)
public ExperienceLevelIdentifierExpression(int value, string matchedIdentifier, bool? sign = null) : base(matchedIdentifier, sign)
{
Value = value;
}
public override Type[] ResultTypes => new Type[] { typeof(IntegerExpression) };
public override Expression Compute(Dictionary<string, object> variables)
protected override Expression ComputeIdentifier(Dictionary<string, object> providers)
{
return new IntegerExpression(Value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
// copies. Other copyrights may also apply.”
namespace AngbandOS.Core.Expressions;

[Serializable]
internal class ExperienceLevelIdentifierFactorParser : IdentifierFactorParser
{
private readonly int Value;
Expand All @@ -15,8 +14,8 @@ public ExperienceLevelIdentifierFactorParser(int value)
Value = value;
}
public override string Identifier => "x";
protected override Expression GenerateExpression(string matchedIdentifier)
protected override Expression GenerateExpression(string matchedIdentifier, bool? sign)
{
return new ExperienceLevelIdentifierExpression(Value, Identifier);
return new ExperienceLevelIdentifierExpression(Value, Identifier, sign);
}
}
4 changes: 3 additions & 1 deletion AngbandOS.Core.Expressions.IDE/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ private void RenderExpression(TreeNode rootNode, Expression expression)
newNode = rootNode.Nodes.Add($"Integer {integerExpression.Value}");
break;
case IdentifierExpression identifierExpression:
newNode = rootNode.Nodes.Add($"Identifier {identifierExpression.Identifier}");
string idSign = !identifierExpression.Sign.HasValue ? ""
: identifierExpression.Sign.Value ? " + " : " - ";
newNode = rootNode.Nodes.Add($"Identifier {idSign}{identifierExpression.Identifier}");
break;
case MultiplicationInfixExpression multiplicationExpression:
newNode = rootNode.Nodes.Add($"Multiply");
Expand Down
7 changes: 6 additions & 1 deletion AngbandOS.Core.Expressions/ExpressionParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,12 @@ private Expression ParseExpression(string text, int precedence, ref int characte
return expression;
}
}
private void IgnoreWhitespace(string text, ref int characterIndex)
/// <summary>
/// Ignores whitespace characters in the <paramref name="text"/> starting at the position indicated by <paramref name="characterIndex"/>.
/// </summary>
/// <param name="text">The text to parse.</param>
/// <param name="characterIndex">The current position in the text.</param>
public void IgnoreWhitespace(string text, ref int characterIndex)
{
while (characterIndex < text.Length && ParseLanguage.WhitespaceCharacters.Contains(text[characterIndex]))
{
Expand Down
44 changes: 42 additions & 2 deletions AngbandOS.Core.Expressions/IdentifierExpression.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,49 @@
public abstract class IdentifierExpression : Expression
{
public readonly string Identifier;
public IdentifierExpression(string identifier)
public readonly bool? Sign;

public IdentifierExpression(string identifier, bool? sign = null)
{
Identifier = identifier;
Sign = sign;
}

/// <summary>
/// Derived expressions compute their unsigned value here. The sign is applied by Compute.
/// </summary>
protected abstract Expression ComputeIdentifier(Dictionary<string, object> providers);

public override Expression Compute(Dictionary<string, object> providers)
{
Expression computedExpression = ComputeIdentifier(providers);

if (!Sign.HasValue || Sign.Value)
{
return computedExpression;
}

switch (computedExpression)
{
case IntegerExpression integerExpression:
return new IntegerExpression(-integerExpression.Value);
case DecimalExpression decimalExpression:
return new DecimalExpression(-decimalExpression.Value);
default:
throw new Exception($"Invalid type for signed identifier {Identifier}.");
}
}

public override string Text
{
get
{
string signSymbol = "";
if (Sign.HasValue)
{
signSymbol = Sign.Value ? "+" : "-";
}
return $"{signSymbol}{Identifier}";
}
}
public override string Text => $"{Identifier}";
}
22 changes: 20 additions & 2 deletions AngbandOS.Core.Expressions/IdentifierFactorParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,29 @@ public abstract class IdentifierFactorParser : FactorParser
{
public virtual bool CaseSensitive => false;
public abstract string Identifier { get; }
protected abstract Expression GenerateExpression(string matchedIdentifier);
protected abstract Expression GenerateExpression(string matchedIdentifier, bool? sign);
public override Expression? TryParse(ExpressionParser parser, string text, ref int characterIndex)
{
int currentCharacterIndex = characterIndex;

// Check for a sign before the identifier.
bool? sign = null;
if (text[currentCharacterIndex] == '+')
{
sign = true;
currentCharacterIndex++;
}
else if (text[currentCharacterIndex] == '-')
{
sign = false;
currentCharacterIndex++;
}

if (sign.HasValue)
{
parser.IgnoreWhitespace(text, ref currentCharacterIndex);
}

// Check to see if there is enough length for a match.
if (currentCharacterIndex + Identifier.Length > text.Length)
{
Expand All @@ -19,7 +37,7 @@ public abstract class IdentifierFactorParser : FactorParser
if (CaseSensitive && matchedIdentifier == Identifier || !CaseSensitive && matchedIdentifier.ToLower() == Identifier.ToLower())
{
characterIndex = currentCharacterIndex + matchedIdentifier.Length;
return GenerateExpression(matchedIdentifier);
return GenerateExpression(matchedIdentifier, sign);
}

return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ namespace AngbandOS.Core.Interface.Configuration;

public class AttributeFilterGameConfiguration : NonCompositeSingletonGameConfiguration
{
public virtual (string AttributeKey, bool DesiredValue)[]? OrAttributeFilterBindings { get; set; } = null;
public virtual (string AttributeKey, bool DesiredValue)[]? BitwiseOrAttributeFilterBindings { get; set; } = null;
public virtual (string AttributeKey, bool?[] DesiredValue)[]? BoolAttributeFilterBindings { get; set; } = null;
public virtual (string AttributeKey, int? StartingValue, int? EndingValue)[]? SumAttributeFilterBindings { get; set; } = null;
public virtual (string AttributeKey, int? StartingValue, int? EndingValue)[]? SummationAttributeFilterBindings { get; set; } = null;
public virtual bool? ActivationAttributeNonNull { get; set; } = null;
public virtual bool? ArtifactBiasAttributeNonNull { get; set; } = null;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
namespace AngbandOS.Core.Interface.Configuration;

public class BitwiseOrAttributeGameConfiguration : NonCompositeSingletonGameConfiguration
{
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// AngbandOS: 2022 Marc Johnston
//
// This game is released under the “Angband License”, defined as: “© 1997 Ben Harrison, James E.
// Wilson, Robert A. Koeneke This software may be copied and distributed for educational, research,
// and not for profit purposes provided that this copyright and statement are included in all such
// copies. Other copyrights may also apply.”
namespace AngbandOS.Core.Interface.Configuration;

public enum EquipmentWieldSlotsEnum
{
MeleeWeaponWieldSlot,
MissileWeaponWieldSlot,
BowWieldSlot,
ShieldWieldSlot,
HeadArmorWieldSlot,
BodyArmorWieldSlot,
CloakWieldSlot,
GlovesWieldSlot,
BootsWieldSlot,
AmuletWieldSlot,
LeftRingWieldSlot,
RightRingWieldSlot,
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ public enum PropertiesEnum
Property,
RefreshMapProperty,
SpareSpellSlotsIntProperty,
SpeedIntProperty,
StringProperty,
TrackedMonsterChangedProperty,
TrackedMonsterNullableMonsterProperty,
Expand Down
45 changes: 37 additions & 8 deletions AngbandOS.Core.Interface.Configuration/Enums/SystemScriptsEnum.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,42 @@
{
public enum SystemScriptsEnum
{
AlcoholRandomMutationScript,
AttAnimalRandomMutationScript,
AttDemonRandomMutationScript,
AttDragonRandomMutationScript,
BanishAllRandomMutationScript,
BersRageRandomMutationScript,
CowardiceRandomMutationScript,
DetectCursesMutationScript,
DisarmRandomMutationScript,
EatLightRandomMutationScript,
FlatulentRandomMutationScript,
HalluRandomMutationScript,
HpToSpRandomMutationScript,
HypnoticGazeMutationScript,
IlluminateMutationScript,
InvulnRandomMutationScript,
LaserEyesMutationScript,
NauseaRandomMutationScript,
NormalityRandomMutationScript,
PolymorphSelfMutationScript,
PolyWoundRandomMutationScript,
ProdManaRandomMutationScript,
RandomTeleportationRandomMutationScript,
RawChaosRandomMutationScript,
ResistElementsMutationScript,
SmellMetalMutationScript,
SpeedFluxRandomMutationScript,
SpToHpRandomMutationScript,
SwapPositionMutationScript,
TeleportAtWillMutationScript,
WalkShadRandomMutationScript,
WarningRandomMutationScript,
WastingRandomMutationScript,
WeirdMindRandomMutationScript,
WraithRandomMutationScript,

AcidTrapScript,
AcquirementIdentifableAndUsedScript,
ActivateScript,
Expand Down Expand Up @@ -100,7 +136,6 @@ public enum SystemScriptsEnum
DestroyAreaR15Script,
DestroyItemScript,
DestroyTrapsAndDoorsScript,
DetCurseMutationScript,
DetectDoorsAndStairsScript,
DetectDoorsTrapsAndStairsScript,
DetectEvilMonstersScript,
Expand Down Expand Up @@ -266,13 +301,11 @@ public enum SystemScriptsEnum
HolyWordScript,
HorrificVisageScript,
HorrifyScript,
HypnGazeMutationScript,
HypnoticEyesScript,
Ice175R4IdentifableAndUsedScript,
IdentifyAllItemsScript,
IdentifyItemFullyScript,
IdentifyItemScript,
IllumineMutationScript,
IlluminationEvery1d10p10Script,
IlluminationIdentifiedAndUsedScriptItemAndDirection,
ImpRacialPowerScript,
Expand All @@ -285,7 +318,6 @@ public enum SystemScriptsEnum
JournalScript,
TeleportToDepthScript,
KlackonRacialPowerScript,
LaserEyeMutationScript,
LauncherMutationScript,
LearnScript,
LeaveStoreScript,
Expand Down Expand Up @@ -427,7 +459,6 @@ public enum SystemScriptsEnum
ResistEnvironmentScript,
ResistFire1d10p10Script,
ResistFireScript,
ResistMutationScript,
ResistPoisonIn5EnchantmentScript,
ResistTrueScript,
RestAllScript,
Expand Down Expand Up @@ -473,7 +504,6 @@ public enum SystemScriptsEnum
SlimeMoldScript,
SlowDartScript,
SlowPoisonScript,
SmellMetMutationScript,
SpawnMonsterScript,
SpecialAcquirementIdentifableAndUsedScript,
SpecialEnlightenmentScript,
Expand Down Expand Up @@ -517,7 +547,6 @@ public enum SystemScriptsEnum
SummonUndeadScript,
SuperHeroism1D25P25ResetFearAndHeal30Script,
SuperheroismAndBlessing50p1d50Script,
SwapPosMutationScript,
TakeOffScript,
TargetScript,
TarotDrawScript,
Expand Down Expand Up @@ -566,7 +595,6 @@ public enum SystemScriptsEnum
VersionScript,
ViewCharacterScript,
ViewMapScript,
VteleportMutationScript,
WalkAndPickupScript,
WalkWithoutPickupScript,
WallOfStoneScript,
Expand All @@ -580,6 +608,7 @@ public enum SystemScriptsEnum
WinnerScript,
WizardBoltScript,
WizardGainExperienceScript,
WizardLoseAllMutationsScript,
WizardGainMutationScript,
WizardHelpScript,
WordOfDestructionScript,
Expand Down
Loading