Phobos-developers / Phobos

Ares-compatible C&C Red Alert 2: Yuri's Revenge engine extension
GNU Lesser General Public License v3.0
300 stars 95 forks source link

Expand the Building Actions #1335

Open CrimRecya opened 3 months ago

CrimRecya commented 3 months ago

I will update the docs soon and these GIFs will show you the main function. building building2

github-actions[bot] commented 3 months ago

Nightly build for this pull request:

This comment is automatic and is meant to allow guests to get latest nightly builds for this pull request without registering. It is updated on every successful build.

CrimRecya commented 3 months ago

Building placing and deploying logic enhancement

In ra2md.ini:

[Phobos]
DrawAdjacentBoundary=false       ; boolean
ShowBuildingStatistics=false     ; boolean

In rulesmd.ini:

[General]
CheckUnitBaseNormal=false        ; boolean
ExpandBuildingPlace=false        ; boolean

[AudioVisual]
PlacementGrid.Expand=false       ; boolean
PlacementGrid.LandFrames=1,0,0   ; integer, zero-based frame index - have technos, near boundary, is normal
PlacementGrid.WaterFrames=1,0,0  ; integer, zero-based frame index - have technos, near boundary, is normal
Cameo.AlwaysExist=false          ; boolean
Cameo.OverlayShapes=pips.shp     ; filename - including the .shp extension
Cameo.OverlayFrames=-1,-1,-1     ; integer - owned this building, grey and have its prerequisite, grey but have no prerequisite
Cameo.OverlayPalette=palette.pal ; filename - including the .pal extension

[SOMEBUILDING]                   ; BuildingType
AutoUpgrade=false                ; boolean
LimboBuild=false                 ; boolean
LimboBuildID=-1                  ; boolean

[SOMETECHNO]                     ; TechnoType
CanBeBuiltOn=false               ; boolean
Cameo.AlwaysExist=               ; boolean
Cameo.AuxTechnos=                ; List of TechnoTypes
Cameo.NegTechnos=                ; List of TechnoTypes
UIDescription.Unbuildable=       ; CSF entry key

[SOMEUNIT]                       ; UnitType
UnitBaseNormal=false             ; boolean
UnitBaseForAllyBuilding=false    ; boolean

In artmd.ini:

[SOMETECHNO]                     ; TechnoType
GreyCameoPCX=                    ; PCX filename - including the .pcx extension
8abs commented 3 months ago

this should be merged asap

4SGX commented 3 months ago

If I may suggest some more appropriate English for these tags: AlwaysExistTheCameoAlwaysShowCameo or AlwaysShowInSidebar PrerequisiteForCameoSidebarPrerequisite or CameoPrerequisite CheckExpandPlaceGridUseNewGrid And possibly remove Expand from ExpandLandGridFrames and ExpandWaterGridFrames

And cannot EligibleForAllyBuilding be reused here instead of creating the new tag UnitBaseForAllyBuilding?

Metadorius commented 3 months ago

If the features are not very intertwined and it's not hard to do a split would be preferable. I understand that we're over our review capacity at the moment though and because of that maybe it's not necessary at least yet.

CrimRecya commented 3 months ago

Get the idea. The placing grids and units base normal are hard to split, but I think it can still be divided into three parts, although it will take me some time. So later I will make modifications to the review that was just submitted, then do a split when I have time.

CrimRecya commented 2 months ago

cameo Add new functions for cameos. And will split this pr in a few days.

CrimRecya commented 1 month ago

I have been really busy lately, so I will wait until I have some free time to do the splitting. Even if it is split, I won't have the energy to make any modifications, so wait for now. Here may be no need for review at the moment, this can be focused on other good places. If you are interested in this, maybe you can give it a try, at least so far the feedback I've received says it's good.

Metadorius commented 1 month ago

I have been really busy lately, so I will wait until I have some free time to do the splitting. Even if it is split, I won't have the energy to make any modifications, so wait for now. Here may be no need for review at the moment, this can be focused on other good places. If you are interested in this, maybe you can give it a try, at least so far the feedback I've received says it's good.

Take your time! It's not a big priority to split the features at all, the pull request isn't as big. More of a "nice to have" than a requirement in this case.