{"action":"closed","issue":{"url":"https://api.github.com/repos/OpenRA/OpenRA/issues/9297","labels_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/9297/labels{/name}","comments_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/9297/comments","events_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/9297/events","html_url":"https://github.com/OpenRA/OpenRA/issues/9297","id":105133813,"number":9297,"title":"CreatesShroud inherits from RevealsShroud, but are functionally disjoint.","user":{"login":"atlimit8","id":4957137,"avatar_url":"https://avatars.githubusercontent.com/u/4957137?v=3","gravatar_id":"","url":"https://api.github.com/users/atlimit8","html_url":"https://github.com/atlimit8","followers_url":"https://api.github.com/users/atlimit8/followers","following_url":"https://api.github.com/users/atlimit8/following{/other_user}","gists_url":"https://api.github.com/users/atlimit8/gists{/gist_id}","starred_url":"https://api.github.com/users/atlimit8/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atlimit8/subscriptions","organizations_url":"https://api.github.com/users/atlimit8/orgs","repos_url":"https://api.github.com/users/atlimit8/repos","events_url":"https://api.github.com/users/atlimit8/events{/privacy}","received_events_url":"https://api.github.com/users/atlimit8/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/OpenRA/OpenRA/labels/Refactor","name":"Refactor","color":"00FFCC"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-09-07T02:26:29Z","updated_at":"2015-09-19T17:46:23Z","closed_at":"2015-09-19T17:46:23Z","body":"`CreatesShroud` inherits from `RevealsShroud`, but every actor with `CreatesShroud` also has  `RevealsShroud` in the MiniYaml (`GAP` in `mods/ra/rules/structures.yaml:78-83`, `MGG` in `mods/ra/rules/vehicles.yaml:504-507`).\r\n\r\nSeparating the two would be the most flexible option.\r\n\r\n`CreatesShroud` *currently* derives from `RevealsShroud`:\r\n```c#\r\n\tpublic class CreatesShroud : RevealsShroud\r\n\t{\r\n\t\tpublic CreatesShroud(Actor self, CreatesShroudInfo info)\r\n\t\t\t: base(self, info)\r\n \t\t{\r\n```\r\n\r\nI'm proposing that that be change to:\r\n```c#\r\n\tpublic class CreatesShroud : AffectsShroud\r\n\t{\r\n\t\tpublic CreatesShroud(Actor self, CreatesShroudInfo info)\r\n\t\t\t: base(self, info)\r\n \t\t{\r\n```\r\nwhere `AffectsShroud` is an absract base class for `RevealsShroud` & `CreatesShroud`.\r\n\r\n<bountysource-plugin>\r\n---\r\nWant to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/26493508-createsshroud-inherits-from-revealsshroud-but-are-functionally-disjoint?utm_campaign=plugin&utm_content=tracker%2F36085&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F36085&utm_medium=issues&utm_source=github).\r\n</bountysource-plugin>"}}